okhttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket,通过连接池来减小响应延迟,还有透
明的GZIP压缩,请求缓存等优势 。
1.项目Demo的git地址:
https://github.com/lantian0314
2.配置app下build.gradle文件以及manifes中的网路权限
compile 'com.squareup.okhttp3:okhttp:3.4.1'
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
3.OKHttp库中Get请求的使用
public void getRequest(Context context, String requestUrl) {
mContext = context;
try {
//得到OkHttpClient对象
OkHttpClient mOkHttpClient = new OkHttpClient();
//构造Request对象
Request.Builder builder = new Request.Builder();
Request request = builder.get().url(requestUrl).build();
//将Request封装为Call
Call mCall = mOkHttpClient.newCall(request);
//开始执行Call
//Response mResponse= mCall.execute();//同步方法
mCall.enqueue(new Callback() {//异步执行方法
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
int code = response.code();//响应码
String result = response.body().string();
Message message = new Message();
message.what = MSG_GETSTATE;
message.obj = code;
mHandler.sendMessage(message);
}
});
} catch (Exception e) {
}
}
4.OKHttp中POST请求的方式
public void postRequest(String requestUrl, JSONObject mJsonObject) {
try {
//初始化OkHttpClient
OkHttpClient mOkHttpClient = new OkHttpClient();
//构造Json的请求对象
RequestBody mRequestBody = RequestBody.create(MediaType.parse("text/plain;chaset=utf-8"), mJsonObject.toString());
//构造Request对象
Request.Builder mBuilder=new Request.Builder();
Request request=mBuilder.post(mRequestBody).url(requestUrl).build();
//构造Call对象
Call mCall=mOkHttpClient.newCall(request);
mCall.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
}
});
} catch (Exception e) {
}
}