当前位置: 首页 > wzjs >正文

医美技术支持东莞网站建设网站开发项目需求方案

医美技术支持东莞网站建设,网站开发项目需求方案,网易联合创新中心,展会网站怎么做简介 在Retrofit中,如果你想直接获取HTML或其他文本格式的响应内容而不是将其映射到一个模型类,ScalarsConverterFactory 就派上用场了。ScalarsConverterFactory 是一个转换器工厂,它能够将响应体转换为Java基本类型如String、Integer或Byte…

简介

        在Retrofit中,如果你想直接获取HTML或其他文本格式的响应内容而不是将其映射到一个模型类,ScalarsConverterFactory 就派上用场了。ScalarsConverterFactory 是一个转换器工厂,它能够将响应体转换为Java基本类型如String、Integer或Byte[]等标量值。对于解析HTML而言,最直接的应用就是将整个HTML内容作为字符串获取。

一、附加依赖

添加依赖包为:

com.squareup.retrofit2:retrofit:2.x.y
com.squareup.retrofit2:converter-scalars:2.x.y
com.squareup.retrofit2:converter-gson:2.x.y
org.jsoup:jsoup:1.17.2

File中找到Project Structure:

        添加Library Dependency

输入网址域名com.squareup.retrofit2

附加成功:

ScalarsConverterFactory.create() 是Retrofit库中的一个转换器工厂方法,它允许Retrofit将HTTP响应体直接转换为Java的基本类型或字符串等标量值,而不是转换为特定的模型对象。这对于处理文本、JSON字符串或二进制数据等非结构化响应非常有用。

二、配置Retrofit

  初始化构建器(Retrofit):

        new Retrofit.Builder() 创建了一个 Retrofit.Builder 实例。Builder 是一个设计模式,它允许你通过一系列配置步骤来创建复杂的对象。在这里,就是用来配置 Retrofit 的各种参数,最终构建出一个 Retrofit 实例。

baseUrl目标地址域名:

        指定所有网络请求的基础 URL。这是所有相对路径请求的基础。

转换器工厂ConverterFactory:

        转换器的作用是将从网络请求得到的响应体转换成 Java 对象。这里使用的 ScalarsConverterFactory 是专门用来处理文本类型的响应体,比如字符串、byte数组等。如果你的 API 返回的是 JSON 数据,通常会使用 GsonConverterFactoryMoshiConverterFactory。

 .build()完成构建:

        最后,调用 build() 方法来完成 Retrofit 实例的创建。这一步会根据之前设置的所有配置项,构建出一个可用的 Retrofit 实例。

Retrofit retrofit = new Retrofit.Builder().baseUrl("https://your.api.base.url/").addConverterFactory(ScalarsConverterFactory.create()).build();

三、定义网址(API)接口

接下来,在定义API接口时,并定义网络请求方法getHtmlContent(),可以声明方法返回类型为Call<String>或其他标量类型,例如:

四、发起请求并处理响应

创建接口实例:

        通过retrofit.create(WHttp.class)创建了一个接口WHttp的实例。这里假设WHttp接口定义了网络请求的方法,如getHtmlContent(),这个方法对应于获取HTML内容的网络请求。

获取html内容:

        通过getHtmlContent()方法对应于获取HTML内容的网络请求。

enqueue异步请求:

        call.enqueue()方法发起一个异步HTTP请求。这意味着当请求开始时,应用不会被阻塞,可以继续处理其他任务。请求的结果会在主线程(UI线程)中通过onResponseonFailure回调方法通知。成功响应 (onResponse)与失败响应 (onFailure)。

成功响应 (onResponse):成功响应就可获取html内容,并做解析处理。

失败响应 (onFailure):将错误信息通过Throwable t传入,然后将错误信息简单地设置到一个名为textView的TextView控件中展示给用户。

五、Jsoup解析html

html解析内容:

response.body()获取内容:

        String html = response.body();: 从Retrofit的响应对象中获取HTML内容。这是之前网络请求的结果,存储为一个字符串。

Jsoup解析(Document)html字符串:

        Document doc = Jsoup.parse(html);: 使用Jsoup库来解析这个HTML字符串,创建一个Document对象。Jsoup是一个用于解析HTML的Java库,非常适用于提取和操作HTML数据。

Jsoup的选择器语法:

        String description = doc.select("meta[name=description]").attr("content");: 利用Jsoup的选择器语法,从Document中选择所有<meta>标签,其中name属性为description的元素,并从中提取content属性的值。这通常用来获取网页的描述信息。

传入数据UI控件显示(setText):

        textView.setText(description);: 最后,将提取到的描述信息设置给一个名为textView的TextView组件的文本内容。这将在UI界面上显示提取到的描述信息。

六、启用线程

 new Thread线程:

        new Thread(new Runnable() { ... }): 创建一个新的线程。在Android中,网络请求和耗时操作通常不应在主线程(UI线程)执行,以免阻塞UI导致应用无响应(ANR)。因此,这里使用一个新的线程来执行耗时的HTML解析操作。public void run() { ... }: 这是Runnable接口中的run方法,定义了在线程启动(.start())后要执行的操作

  new Thread(new Runnable() {@Overridepublic void run() {runOnUiThread(new Runnable() {@Overridepublic void run() {String html = response.body();Document doc = Jsoup.parse(html);String description = doc.select("meta[name=description]").attr("content");textView.setText(description);}});}}).start();

 runOnUiThread UI线程:

        runOnUiThread(new Runnable() { ... }): 因为Android不允许在非UI线程直接更新UI组件,所以这里使用runOnUiThread方法来确保UI更新操作在主线程中执行。runOnUiThread是Activity或View的成员方法,可以接受一个Runnable对象,确保其在UI线程运行。public void run() { ... }: 这是第二个Runnable对象中的run方法,定义了要在UI线程执行的操作。

 runOnUiThread(new Runnable() {@Overridepublic void run() {String html = response.body();Document doc = Jsoup.parse(html);String description = doc.select("meta[name=description]").attr("content");textView.setText(description);}});

最终效果:

        简要总结:添加依赖包+初始化构建器(baseurl(地址域名),转换器(ConverterFactory),build构建)+实例化接口+调用接口方法获取数据+enqueue异步请求+线程+解析数据

 

 

 

 

 

 

 

 

http://www.dtcms.com/wzjs/821260.html

相关文章:

  • 南宁网站制作-中国互联成都电商平台网站设计
  • 做网站分成wordpress伪静态页文件夹
  • 天猫店铺装修做特效的网站邯郸网站优化公司
  • 网站所有权变更wordpress右侧广告位
  • 高档网站设计公司36 氪 网站如何优化
  • 做ppt的模板的网站有哪些内容软件学校网站模板下载
  • 防水补漏东莞网站建设网站被360拦截怎么办
  • 网站搭建合作协议电影购买网站怎么设计
  • 外贸网站零基础建站申请域名后怎样建设网站
  • 如何构建网站平台ip138查询网站网址域名ip
  • 微网站 淘宝客网址怎么生成短链接
  • 一个企业可以做几个网站茗匠智能门店管理系统
  • 怎么做本地网站网页设计培训平台
  • 阿里云企业邮箱怎么申请安阳网站制作优化
  • 呼和浩特市做网站的企业网站的网络推广方案
  • 做网站的公司金坛安康微信公众平台
  • 南京浦口网站建设旅游网站建设属于什么以及学科
  • 无锡seo网站建设费用建设网站网站多少钱
  • 如何创建一个个人网站一家企业如何做网站推广
  • 做期货网站违法的吗网络制作网站
  • 如保做网站赢利北京网站设计网站设计公司价格
  • 手机交互网站如何把网站放在主机上
  • 门户网站 jsp如何建立一个学校网站
  • 建设档案员证书查询网站三合一网站建设推广
  • 新网站建设方案沭阳网站设计
  • 湖南北山建设集团网站郑州做手机网站建设
  • 母婴护理服务网站模板网站地图灰色效果的怎么做的
  • 网站建设的方法和技术湖北高速公路建设网站
  • seo按照搜索引擎的什么对网站设计师网站pintset
  • 吉林市网站建设公司部门设置