一、get
1.拿到OkHttpClient对象
OkHttpClient okHttpClient = new OkHttpClient();
2.创建请求Request内容
Request.Builder builder = new Request.Builder();
Request request = builder.get().url("https://www.baidu.com/").build();
3.将Request封装为Call,发送请求
Call call = OkHttpClient.newCall(request);
4.执行call,创建请求返回的内容
A---Response response = call.execute();------------同步
B---call.enqueue(new Callback(){ ------------异步,可以修改UI,加上异步处理
@Override
public void onFailure(Call call, IOException e) {
Log.e(TAG, "请求失败的原因:" + e);
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
Headers headers = response.headers();
Set<String> names = headers.names();
for (String name : names) {
Log.e(TAG, "请求的header" + name);
String value = headers.get(name);
Log.e(TAG, "值为: " + value + "\n----------------------------------");
}
final String date = response.body().string();--------值只能获取一次
mHandler.post(new Runnable() {
@Override
public void run() {
mTvShow.setText(date);
}
});
}
});
二、POST
/*1.创建OkHttpClient对象*/
OkHttpClient httpClient = new OkHttpClient();
/*2.创建相应的表单内容*/
FormBody formBody = new FormBody.Builder()
.add("key", "value")
.build();
/*3.创建请求Request内容*/
Request request = new Request.Builder()
.url("https://wwws.baidu.com/")
.post(formBody)
.build();
/*4.发送请求*/
Call call = httpClient.newCall(request);
/*5.创建请求的回调*/
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.e(TAG, "请求失败的原因:" + e);
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
Headers headers = response.headers();
Set<String> names = headers.names();
for (String name : names) {
Log.e(TAG, "请求的header" + name);
String value = headers.get(name);
Log.e(TAG, "值为: " + value + "\n----------------------------------");
}
final String date = response.body().string();
mHandler.post(new Runnable() {
@Override
public void run() {
mTvShow.setText(date);
}
});
}
});
}
三、一些服务器返回的设置
OkHttpClient httpClient = new OkHttpClient.Builder()
//设置相应的连接池
.connectionPool(new ConnectionPool())
//连接超时
.connectTimeout(15, TimeUnit.SECONDS)
//写入超时
.writeTimeout(15, TimeUnit.SECONDS)
//读取超时
.readTimeout(20, TimeUnit.SECONDS)
.build();
--------本人小白,只做笔记,文章均来自网络,不喜勿喷,侵权删