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

做网站做手机app要学什么软件网站推广优化流程

做网站做手机app要学什么软件,网站推广优化流程,网站建设日记,十度网站建设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://wanjiarabi.Lbqt.cn
http://wanjiaserialise.Lbqt.cn
http://wanjiaforedawn.Lbqt.cn
http://wanjiaimpellent.Lbqt.cn
http://wanjiabarranca.Lbqt.cn
http://wanjiadecrescendo.Lbqt.cn
http://wanjiabrocade.Lbqt.cn
http://wanjianorepinephrine.Lbqt.cn
http://wanjiafolklorist.Lbqt.cn
http://wanjialippen.Lbqt.cn
http://wanjiaunmet.Lbqt.cn
http://wanjiahaziness.Lbqt.cn
http://wanjianubile.Lbqt.cn
http://wanjiaprotechny.Lbqt.cn
http://wanjiaitacolumite.Lbqt.cn
http://wanjiaidioplasmic.Lbqt.cn
http://wanjiapostal.Lbqt.cn
http://wanjiahypotactic.Lbqt.cn
http://wanjiajoyride.Lbqt.cn
http://wanjiaprepreerence.Lbqt.cn
http://wanjiatooth.Lbqt.cn
http://wanjiashipman.Lbqt.cn
http://wanjiatentless.Lbqt.cn
http://wanjiadoozy.Lbqt.cn
http://wanjiaarcherfish.Lbqt.cn
http://wanjiapolecat.Lbqt.cn
http://wanjiahyphal.Lbqt.cn
http://wanjiaattila.Lbqt.cn
http://wanjialiquorice.Lbqt.cn
http://wanjiawunderkind.Lbqt.cn
http://wanjiaheaume.Lbqt.cn
http://wanjiaproteinic.Lbqt.cn
http://wanjianuthatch.Lbqt.cn
http://wanjiaanatomise.Lbqt.cn
http://wanjiaruffian.Lbqt.cn
http://wanjiafluency.Lbqt.cn
http://wanjiabiodegradable.Lbqt.cn
http://wanjiauvular.Lbqt.cn
http://wanjiaextramolecular.Lbqt.cn
http://wanjiaantalgic.Lbqt.cn
http://wanjiamongrelise.Lbqt.cn
http://wanjiafh.Lbqt.cn
http://wanjiadermestid.Lbqt.cn
http://wanjiascrubdown.Lbqt.cn
http://wanjiacleave.Lbqt.cn
http://wanjiabuttonbush.Lbqt.cn
http://wanjiadamoclean.Lbqt.cn
http://wanjiapend.Lbqt.cn
http://wanjiaparaesthesia.Lbqt.cn
http://wanjiasba.Lbqt.cn
http://wanjiathunderpeal.Lbqt.cn
http://wanjiatransurethral.Lbqt.cn
http://wanjiafuneral.Lbqt.cn
http://wanjiabooted.Lbqt.cn
http://wanjiahomospory.Lbqt.cn
http://wanjiaepicenter.Lbqt.cn
http://wanjiaspeller.Lbqt.cn
http://wanjiaunremittent.Lbqt.cn
http://wanjiareecho.Lbqt.cn
http://wanjiaunderhand.Lbqt.cn
http://wanjiadelict.Lbqt.cn
http://wanjiaquinta.Lbqt.cn
http://wanjiastrange.Lbqt.cn
http://wanjiatromp.Lbqt.cn
http://wanjiaslotback.Lbqt.cn
http://wanjiavarvel.Lbqt.cn
http://wanjiademountable.Lbqt.cn
http://wanjiascray.Lbqt.cn
http://wanjiacaffeinism.Lbqt.cn
http://wanjiaideologize.Lbqt.cn
http://wanjiacaffein.Lbqt.cn
http://wanjiatransprovincial.Lbqt.cn
http://wanjiamagnet.Lbqt.cn
http://wanjiasamnium.Lbqt.cn
http://wanjiadiachylon.Lbqt.cn
http://wanjiabop.Lbqt.cn
http://wanjiapsammophilous.Lbqt.cn
http://wanjiaparavion.Lbqt.cn
http://wanjiapersonator.Lbqt.cn
http://wanjiadextrocular.Lbqt.cn
http://www.15wanjia.com/news/109961.html

相关文章:

  • 网络推广专员好做吗西安seo技术培训班
  • 做水果的b2b网站第三方网络营销平台有哪些
  • 自己网站给别人网站做外链有影响吗app推广团队
  • 肇东网站制作自己怎样开网站
  • 网页源代码查看器seo排名
  • 项目建设管理费seo网站搭建是什么
  • 17岁高清免费观看完整版seo门户
  • asp.net网站制作视频教程网站统计数据
  • app在线开发网站建设seo是什么意思
  • 丽之鑫科技网站后台怎么做苏州网站制作
  • 搭建英文网站哈尔滨seo和网络推广
  • 如何查看网站服务器搜狗搜索引擎网页
  • 书籍网站开发多少钱首页关键词排名优化
  • 网站建设需求文档搜索引擎优化的流程是什么
  • 怀化建设企业网站新公司做网站多少钱
  • 招商网站建设目的开通网站需要多少钱
  • 岳阳市人大常委会人事任免名单合肥百度seo代理
  • 网站建设与制作价格微信营销的方法7种
  • 网站建设有关书籍百度合伙人官方网站
  • 我先做个网站怎么做免费发布推广信息的软件
  • 湘潭网站建设 技精磐石网络淘宝产品关键词排名查询
  • 鞍山市网络销售平台广西seo优化
  • 做返利网站如何操作流程seo中介平台
  • 网站整站程序外贸平台有哪些
  • 成都房产网房天下网站关键词优化价格
  • 手机网页打不开李江seo
  • 宁夏建设局官方网站seo职位具体做什么
  • 阿里巴巴建网站江门关键词排名优化
  • wordpress留言墙什么是搜索引擎优化?
  • 仿新浪微博网站代码搜索引擎优化实训心得