OKHttp3使用(POST方式)
这里使用JSON对象为参数,具体实现方法代码如下:
package cn.xlink.lift;
import com.alibaba.fastjson.JSONObject;
import okhttp3.*;
import java.io.IOException;
import java.util.Date;
import java.util.concurrent.TimeUnit;
//@Component
public class OKHttpConnection {
//http连接查询接口数据POST
public JSONObject httpPostConnect(String url,JSONObject jsonObject){
long startTime = new Date().getTime();
JSONObject resultForJson = null;
//设置媒体类型。application/json表示传递的是一个json格式的对象
MediaType mediaType = MediaType.parse("application/json;charset=UTF-8");
//创建okHttpClient对象
OkHttpClient okhttp = new OkHttpClient();
//设置okhttp超时
okhttp.newBuilder().connectTimeout(10000L, TimeUnit.MILLISECONDS).readTimeout(50000,TimeUnit.MILLISECONDS).build();
//创建RequestBody对象,将参数按照指定的MediaType封装
RequestBody requestBody = RequestBody.create(mediaType, jsonObject.toString());
//创建一个Request
Request request = new Request.Builder().post(requestBody).url(url).build();
try {
Response response = okhttp.newCall(request).execute();
if(!response.isSuccessful())
throw new IOException("unexpected code.."+response);
String result = response.body().string();
resultForJson = JSONObject.parseObject(result);
response.body().close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return resultForJson;
}
}
