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;
	}

}
经验分享 程序员 微信小程序 职场和发展