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

佛山网站建设电话龙华民治网站建设公司

佛山网站建设电话,龙华民治网站建设公司,全国最大网站建站公司,wordpress音乐播放界面Retrofit 的原理 Retrofit的核心原理包括动态代理与Service Method的构建、注解解析与请求配置、网络请求执行与响应处理等。它是一个类型安全的HTTP客户端#xff0c;用于Android和Java平台#xff0c;通过将HTTP API转化为Java接口的方式#xff0c;简化了网络请求的编写…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:nameandroid.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(): CallExample }调用该接口并使用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 : CallbackExampleGenerate {override fun onResponse(call: CallExampleGenerate,response: ResponseExampleGenerate) {val body response.body()println(返回数据)if (body ! null) {println( body.data.catering)println(body.toString())}}override fun onFailure(call: CallExampleGenerate, t: Throwable) {t.printStackTrace()}})}结论 Retrofit 是一款功能强大的网络请求库简化了开发流程提供高效的网络请求能力。通过深入学习 Retrofit 的高级使用与原理我们能够更好地理解和应用这一库从而提高开发效率和代码质量。
http://www.w-s-a.com/news/573773/

相关文章:

  • 江苏省建设工程安全监督网站商洛网站制作
  • 海淀网站建设wzjs51网页设计页面配色分析
  • 网站的备案流程图垦利网站制作
  • 行业用品网站怎么建设外链买东西的网站都有哪些
  • 淘宝做促销的网站集团门户网站建设策划
  • 网站排行榜查询怎样把个人介绍放到百度
  • vps 网站上传河北省招投标信息网
  • 武进网站建设咨询网站定制公司选哪家
  • 郑州市建设投资集团公司网站深圳企业网站建设推荐公司
  • 天津个人网站备案查询dz网站恢复数据库
  • 关于网站建设的期刊文献宣传片文案
  • 物业网站模板下载wordpress+菜单大小
  • 网站建设案例教程视频空间刷赞网站推广
  • 网站建设借鉴做外贸球衣用什么网站
  • 网站建设的前途微信公众号制作网站
  • 做网站之前要安装什么网站改进建议有哪些
  • 网站建设+管理系统开发山东专业网站建设公司
  • 基础微网站开发咨询中国印花图案设计网站
  • 找最新游戏做视频网站天津市招标投标公共服务平台
  • 电影订票网站怎么做注册地址出租多少钱
  • 做网站的规划和设想怎样做能让招聘网站记住密码
  • 建站知乎网站公告建设方案
  • 济南市住房和城乡建设局官方网站淮阳住房和城乡建设网站
  • 网站的设计特点有哪些seo推广要多少钱
  • wordpress开通多站点好处软件开发外包公司的设计一般多少钱
  • 为什么我的网站做不起来微信网页版登录手机版下载
  • 苏州市建设职业中心网站北京网站优化方法
  • 于飞网站开发溧阳 招网站开发
  • 网站中的宣传册翻页动画怎么做长沙有哪些网络平台公司
  • 如何做视频门户网站网站建设模板ppt