OkHttp已经出到3.2.0了,之间的api有的也发生了变化,下面贴出自己写的工具类。
public class HttpClient
{
private static OkHttpClient.Builder builder = new OkHttpClient.Builder();
private static int cacheSize = 10 * 1024 * 1024; // 10 MiB
/**
* 设置连接超时时间
*
* @param timeout
*/
public static void setConnectTimeout(long timeout)
{
builder.connectTimeout(timeout, TimeUnit.MILLISECONDS);
}
/**
* 设置读取超时时间
*
* @param timeout
*/
public static void setReadTimeout(long timeout)
{
builder.readTimeout(timeout, TimeUnit.MILLISECONDS);
}
/**
* 设置写入超时时间
*
* @param timeout
*/
public static void setWriteTimeout(long timeout)
{
builder.writeTimeout(timeout, TimeUnit.MILLISECONDS);
}
/**
* 设置缓存
*
* @param cacheDirectory
*/
public static void setcache(File cacheDirectory)
{
Cache cache = new Cache(cacheDirectory, cacheSize);
builder.cache(cache);
}
/**
* 设置缓存大小
*
* @param size
*/
public static void setCacheSize(int size)
{
cacheSize = size;
}
/**
* GET请求方式
*
* @param path
* @param callback
*/
public static void get(String path, Callback callback)
{
Request request = new Request.Builder().url(path).build();
builder.build().newCall(request).enqueue(callback);
}
/**
* POST请求方式
*
* @param path
* @param params
* @param callback
*/
public static void post(String path, RequestParam params, Callback callback)
{
Request request = new Request.Builder().url(path).post(params.create()).build();
builder.build().newCall(request).enqueue(callback);
}
}
下面是RequestParam,用于POST请求
public class RequestParam {
private StringBuilder params = new StringBuilder();
private FormBody.Builder builder = new FormBody.Builder();
public void put(String key, String value) {
builder.add(key, value);
}
public RequestBody create()
{
return builder.build();
}
}
下面是使用方法:
public class Test {
public static void main(String[] args) {
RequestParam param = new RequestParam();
param.put("", "");
param.put("", "");
param.put("", "");
HttpClient.post("https://hao.360.cn/", param, new Callback() {
@Override
public void onResponse(Call call, Response response) throws IOException {
// TODO Auto-generated method stub
if (response.isSuccessful()) {
System.out.println(response.request().url());
System.out.println(response.body().string());
} else {
System.out.println("Error");
}
}
@Override
public void onFailure(Call call, IOException e) {
// TODO Auto-generated method stub
}
});
}
}