OkHttp

1.导入依赖

2.设置网络请求

3.在App中初始化

第一步:implementation 'com.squareup.okhttp3:okhttp:3.3.0'

第二步:

public class UrlTool {
    private static Gson gson = new Gson();
    private static final String MEDIA_TYPE = "application/json;charset=utf-8";
    private static final String METHOD_GET = "GET";
    private static final String METHOD_POST = "POST";
    private static final String METHOD_PUT = "PUT";
    private static final String METHOD_DELETE = "DELETE";
    private static OkHttpClient okHttpClient = new OkHttpClient();

    //私有化构造方法,利用单例模式
    private UrlTool() {
    }

    ;

    //写一个init方法,用于初始化的时候的调用
    public static void init() {
        OkHttpClient.Builder builder = new OkHttpClient.Builder();
        builder.readTimeout(3000, TimeUnit.MILLISECONDS);
        builder.writeTimeout(3000, TimeUnit.MILLISECONDS);
        builder.connectTimeout(3000, TimeUnit.MILLISECONDS);
        okHttpClient = builder.build();
    }

    //创建request对象
    private static Request createRequest(String url, String method, BaseRequset baseRequset) {
        RequestBody requestBody = null;
        if (baseRequset != null) {
            String bodyJson = gson.toJson(baseRequset);
            MediaType JSON = MediaType.parse(MEDIA_TYPE);
            requestBody = RequestBody.create(JSON, bodyJson);
        }
        Request.Builder builder = new Request.Builder().url(url);
        Request request = null;
        switch (method) {
           /* case METHOD_GET:
                request = builder.build();
                break;*/
            case METHOD_POST:
                request = builder.post(requestBody).build();
                break;
          /*  case METHOD_PUT:
                if (requestBody != null) {
                    request = builder.put(requestBody).build();
                }
                break;
            case METHOD_DELETE:
                if (requestBody != null) {
                    request = builder.delete(requestBody).build();
                } else {
                    request = builder.delete().build();
                }
                break;*/
        }
        return request;
    }

    //封装异步的post方法
    public static void enqueuePost(String url, BaseRequset baseRequset, Callback callback) {
        Request request = createRequest(url, METHOD_POST, baseRequset);
        Call call = okHttpClient.newCall(request);
        call.enqueue(callback);

    }
    //封装异步的get
   /* public static void enqueueGet(String url, Callback callback) {
        Request request = createRequest(url, METHOD_GET);
        Call call = okHttpClient.newCall(request);
        call.enqueue(callback);
    }*/

}

第三步:

UrlTool.init();

Model

//获取响应码
int code = response.code();
if (code == 200) {
    //获取服务器返回的json数据
    ResponseBody body = response.body();
    final String s = body.string();
    handler.post(new Runnable() {
        @Override
        public void run() {
            data.getUrl(s);
        }
    });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值