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

做资讯网站需要哪些资质网站落地页和普通网页

做资讯网站需要哪些资质,网站落地页和普通网页,仙居网站建设,北京装修公司前十强Retrofit 的原理 Retrofit的核心原理包括动态代理与Service Method的构建、注解解析与请求配置、网络请求执行与响应处理等。它是一个类型安全的HTTP客户端,用于Android和Java平台,通过将HTTP API转化为Java接口的方式,简化了网络请求的编写…

Retrofit 的原理

Retrofit的核心原理包括动态代理与Service Method的构建、注解解析与请求配置、网络请求执行与响应处理等。它是一个类型安全的HTTP客户端,用于Android和Java平台,通过将HTTP API转化为Java接口的方式,简化了网络请求的编写工作。
Retrofit利用Java的注解处理器分析定义好的HTTP接口,将注解(如@GET, @POST等)转化为OkHttp请求的具体配置。当调用接口方法时,Retrofit通过动态代理机制,根据接口注解生成OkHttp的Request对象。

再者,Retrofit在内部实现上,主要依赖于其姊妹项目OkHttp来完成实际的网络请求。Retrofit相当于是OkHttp的一个封装层,提供了更简洁易用的API供开发者使用。它通过注解的方式来描述HTTP请求的配置,省去了手动创建和管理HTTP请求的复杂性。

增加依赖

由于Retrofit是基于OkHttp开发的,因此添加下面的依赖会自动将Retrofit、OkHttp和Okio这几个库一起下载,我们无须再手动引入OkHttp库。另外,Retrofit还会将服务器返回的JSON数据自动解析成对象,因此下面的第二条依赖就是一个Retrofit的转换库,它是借助GSON来解析JSON数据的,所以会自动将GSON库一起下载下来,这样我们也不用手动引入GSON库了。除了GSON之外,Retrofit还支持各种其他主流的JSON解析库,包括Jackson、Moshi等,不过毫无疑问GSON是最常用的。
在dependencies中添加如下依赖:

implementation("com.squareup.retrofit2:retrofit:2.6.1")
implementation("com.squareup.retrofit2:converter-gson:2.6.1")

程序设置网络访问

java.lang.SecurityException: Permission denied (missing INTERNET permission?)你的应用程序缺少访问互联网的权限。

在AndroidManifest.xml 的manifest标签中增加代码:

<uses-permission android:name="android.permission.INTERNET" />

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.playtest/com.example.playtest.MainActivity}: android.os.NetworkOnMainThreadException
这个错误是因为你在主线程中进行了网络操作。在Android中,主线程用于处理UI和用户交互,因此不能进行耗时的操作,如网络请求。你需要将网络操作放在一个单独的线程中执行。你可以使用AsyncTask或者HandlerThread来实现。
要在 Android 的 Activity 或 Fragment 中使用异步任务,可以这样做:

CoroutineScope(Dispatchers.Main).launch {// 在这里执行异步任务}

新增一个基础接口返回类,如下
所示:

data class Example (val code: Long,val data: Data,val msg: String
)

同时创建一个service,

interface PlatformService {@GET("/service/anonymous/public/config/domain")fun getConfig(): Call<Example>
}

调用该接口并使用gson解析:

        CoroutineScope(Dispatchers.Main).launch {val retrofit = Retrofit.Builder()//必须为ip或者域名地址.baseUrl("https://localhost:8080/").addConverterFactory(GsonConverterFactory.create()).build()val appService = retrofit.create(PlatformService::class.java)appService.getConfig().enqueue(object : Callback<ExampleGenerate> {override fun onResponse(call: Call<ExampleGenerate>,response: Response<ExampleGenerate>) {val body = response.body()println("返回数据")if (body != null) {println( body.data.catering)println(body.toString())}}override fun onFailure(call: Call<ExampleGenerate>, t: Throwable) {t.printStackTrace()}})}

结论

Retrofit 是一款功能强大的网络请求库,简化了开发流程,提供高效的网络请求能力。通过深入学习 Retrofit 的高级使用与原理,我们能够更好地理解和应用这一库,从而提高开发效率和代码质量。

http://www.15wanjia.com/news/186411.html

相关文章:

  • 地方网站怎么做推广广西省建设注册管理网站
  • 网站设计制作公司排名室内设计书籍
  • 站长推荐外链查询工具
  • 网络公司网站模板烟台网站制作培训
  • 厦门做网站哪家公司好建设平台型网站多少钱
  • 快速搭建网站前端邵阳网页制作
  • 深圳电子网站建设房屋中介的网站怎么建设
  • 做金融的看哪些网站信用中国网站建设要求
  • 网站制作模板软件wordpress换主题影响
  • 哪里可以免费申请空间 注册域名 申请网站网站建设公司落寞
  • 移动网站开发教程dj音乐网站建设
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码免费的服务器有哪些
  • 怎样建设影视网站怎样创建网站吉洋大鼓
  • 360网站弹窗推广怎么做的网站推广服务外包
  • 网站被植入了js做英文网站建设
  • 美丽说的网站建设wordpress更改轮播图
  • wordpress网站案例html个人主页制作
  • 昆明凡科建站多少钱协会网站建设需求文档
  • 中小企业网站建设平台小蝌蚪紧急自动跳转中
  • 建立网站是很多企业开始进行网络营销的第一步wordpress固定设备登录
  • 国外客户推广网站wordpress 上传图片 500
  • 站长音效wordpress开启小工具
  • 简单的美食网站模板网站的主机空间是
  • 网站开发问卷调查题仿大学网站网页代码
  • 甘肃建设厅网站二级建造师报名时间界面ui设计
  • 搭建一个服务器买域名做网站WordPress公众号主题
  • 做自媒体需要用的网站合肥 做网站的公司
  • 传奇网站模板psd网站开发教学视频百度云
  • 免费软件app网站下载大全河北恒基建设招标有限公司网站
  • 打电话拉客户用网站做广告怎么做 好做吗在线教育网站制作