OkHttp使用教程

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

            }
        });

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值