使用OkHttp
减少塑料使用,使用可重复使用的购物袋 #生活常识# #环保生活Tips# #可持续发展#
使用OkHttp
在当今开源盛行的今天,有许多出色的网络通信库,其中不乏包括HttpURLConnection,HttpClient,OkHttp,而OkHttp无疑是做的最出色的一个。
Okhttp
Okhttp是由大名鼎鼎的Square公司开发的,Okhttp不仅走起接口封装上面做的简单易用,就连底层的实现上也是自成一派,比起原生的HttpURLCommection,可以说是有过之而无不及。OkHttp项目主页地址https://github.com/square/okhttp。
使用之前的准备
#在使用之前,我们需要在项目中添加OkHttp库的依赖。编辑app/build.gradle文件,在dependencies闭包中添加如下内容:
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'junit:junit:4.12' implementation 'com.github.bumptech.glide:glide:3.7.0' implementation 'org.litepal.android:core:1.4.1' implementation 'com.squareup.okhttp3:okhttp:3.4.1' implementation 'com.google.code.gson:gson:2.7' implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'org.litepal:LitePal:1.2.0' } 12345678910111213
添加上述依赖会自动下载两个库,一个是OkHttp库,一个是Okio库,后者是前者的通信基础。
OkHttp具体用法
首先需要创建一个OkHttpClient的实例,如下所示:
OkHttpClient client = new OkHttpClient(); 1
接下来如果想要发起一条HTTP请求,就需要创建一个Request对象:
Request request = new Request.Builder().build(); 1
当然,上述代码只是创建了一个空的Request对象,我们可以在最终的build()方法之前连缀很多其他方法来丰富这个Request对象。比如可以通过url()方法来设置目标的网络地址:
Request request = new Request.Builder().url(address).build(); 1
之后调用OkHttpClient的newCall()方法创建一个Call对象,并调用它的execute()方法来发送请求并获取服务器返回的数据
Response response = client.newCall(request).execute(); 1
其中Response对象就是服务器返回的数据了,我们可以使用如下写法来得到返回的具体内容:
String reponseData = response.body().string(); 1
Okhttp发起一条Get请求
OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder().url(address).build(); client.newCall(request).enqueue(callback); 123
以上是发起一条Get请求,如果是一条Post的请求,情况则有一点不同
首先构建一个request body对象,存放待提交的数据
RequestBody requestBody = new FormBody.Builder().add("username","admin").add("password","123456").build(); 1
然后在Request.Builder中调用一下post()方法,并将RequestBody对象传入:
Request request = new Request.Builder().url(address).post(requestBody).build(); 1
OkHttp发起一条Post请求
OkHttpClient client = new OkHttpClient(); //构建一个requestBody对象存放待提交的参数 RequestBody requestBody = new FormBody.Builder().add("username","admin").add("password","123456").build(); //调用post方法,将requestBody对象传入 Request request = new Request.Builder().url(address).post(requestBody).build(); client.newCall(request).enqueue(callback); 123456
网址:使用OkHttp https://www.yuejiaxmz.com/news/view/379425
相关内容
Android网络优化:提升用户体验的七大策略Android Studio实现简单的健身系统
责任链模式及其使用场景
ioctl
网络优化系列:探讨网络请求的性能提升策略本文详细探讨了网络请求的各个步骤,包括DNS解析、创建连接、发送/接收数据和关闭
网络优化系列:探讨网络请求的性能提升策略
推荐文章:探索全面的Android生活小助手——SmartTool
使用 NODE
科沃斯扫地机器人如何使用,怎么使用,使用教程
空调如何使用?空调使用小技巧