protected OkHttpClient mOkHttpClient;
MediaType MEDIA_TYPE_JSON = MediaType.parse("application/json; charset=utf-8");
//初始化okHttpClient
private void initOkHttpClient() {
File sdcache = getExternalCacheDir();
int cacheSize = 10 * 1024 * 1024;
OkHttpClient.Builder builder = new OkHttpClient.Builder()
.connectTimeout(15, TimeUnit.SECONDS)
.writeTimeout(20, TimeUnit.SECONDS)
.readTimeout(20, TimeUnit.SECONDS)
.cache(new Cache(sdcache.getAbsoluteFile(), cacheSize));
mOkHttpClient = builder.build();
}
//请求方法
public void testOKHttp3(){
//fastJson将对象转成JSON字符串
TestBean testBean = new TestBean();
testBean.setAge("12");
testBean.setName("Tom");
String json = JSON.toJSONString(testBean);
//请求body
RequestBody body = RequestBody.create(MEDIA_TYPE_JSON, json);
//请求header的添加
Headers headers = new Headers.Builder().add("test","12")
.add("test1","456").build();
//请求组合创建
Request request = new Request.Builder()
.url("https://free-api.heweather.com/s6/air/now?location=beijing&key=f464c53cb02240a194640685ee425116")
.post(body)
.headers(headers)
.build();
//发起请求
mOkHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response){
//获得返回,并使用FastJson将Json字符串存储在JavaBean对象中
final AirConditionInfoList airConditionInfoList = JSON.parseObject(response.body().string(), AirConditionInfoList.class);
}
});
}