package com.tairanchina.common.util;
import com.squareup.okhttp.Callback;
import com.squareup.okhttp.MediaType;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.Request;
import com.squareup.okhttp.Request.Builder;
import com.squareup.okhttp.RequestBody;
import com.squareup.okhttp.Response;
import java.io.IOException;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;
/**
* @author tjf
* @ClassName: OkHttpUtil
* @Description: okhttp工具类,支持同步,异步操作
* @date 2016年11月2日下午3:15:07
*/
public class OkHttpUtil {
/**
* 静态属性和静态块它们彼此都有可能会用到对方,静态块中如果用到未初始化的静态属性
* 可在编译期约束避免它们的地位相对平等,且加载顺序也须是单线程就按照它们在代码中的出现顺序排序
*/
private static final OkHttpClient mOkHttpClient = new OkHttpClient();
static {
mOkHttpClient.setConnectTimeout(30, TimeUnit.SECONDS);
}
/**
* 私有防止外部实例化,创建一个新的实例 OkHttpUtil.
*/
private OkHttpUtil() {
}
/**
* @param request
* @description: 开启同步线程。
* @name: execute
* @author: hztjf
* @date: 2018/12/12 10:16
* @return: com.squareup.okhttp.Response
* @throws: IOException
* @modifyLog: 如需更改此函数,请添加记录,格式:add by hztjf 2018/12/12 10:16 修改理由
*/
public static Response execute(Request request) throws IOException {
return mOkHttpClient.newCall(request).execute();
}
/**
* @param request
* @param responseCallback
* @description: 开启异步线程访问网络
* @name: enqueue
* @author: hztjf
* @date: 2018/12/12 10:15
* @return: void
* @throws: 如有特殊异常,请说明
* @modifyLog: 如需更改此函数,请添加记录,格式:add by hztjf 2018/12/12 10:15 修改理由
*/
public static void enqueue(Request request, Callback responseCallback) {
mOkHttpClient.newCall(request).enqueue(responseCallback);
}
/**
* @param request
* @description: 开启异步线程访问网络, 且不在意返回结果(实现空callback)
* @name: enqueue
* @author: hztjf
* @date: 2018/12/12 10:15
* @return: void
* @throws: 如有特殊异常,请说明
* @modifyLog: 如需更改此函数,请添加记录,格式:add by hztjf 2018/12/12 10:15 修改理
okhttp同步异步请求工具
最新推荐文章于 2023-11-07 11:54:10 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)