您的位置:首页 > 理论基础 > 计算机网络

OkHttp使用教程

2016-02-27 14:55 543 查看
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

}
});

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: