OKhttp工具类

 

 

package com.bwie.yuekao.utils;

import android.util.Log;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;

public class OkHttputils {
    private static OkHttputils okHttputils;
    private static OkHttpClient okhttpClient;


    private OkHttputils(){
        HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor();
        httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
        okhttpClient = new OkHttpClient.Builder()
                .addInterceptor(httpLoggingInterceptor)
                .writeTimeout(5, TimeUnit.SECONDS)
                .readTimeout(5,TimeUnit.SECONDS)
                .connectTimeout(5,TimeUnit.SECONDS)
                .build();
    }
    public static  OkHttputils getInstance(){
        if (okHttputils ==null){
            synchronized (OkHttputils.class){
                if (okHttputils ==null){
                    okHttputils = new OkHttputils();
                }
            }
        }
        return  okHttputils;
    }
    public  void getData(String url, HashMap<String,String > params, final  RequestCallback requestCallback){
        StringBuilder urlsb = new StringBuilder();
        String allUrl ="";
        for (Map.Entry<String,String> stringStringEntry : params.entrySet()){
            urlsb.append("?").append(stringStringEntry.getKey()).append("=").append(stringStringEntry.getValue()).append("&");
        }
        allUrl = url+urlsb.toString().substring(0,urlsb.length()-1);
        System.out.println("url:"+ allUrl);
        Request build = new Request.Builder()
                .url(allUrl).get().build();
        okhttpClient.newCall(build).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                if (requestCallback !=null){
                    requestCallback.failure(call,e);
                }
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (requestCallback !=null){
                    requestCallback.onResponse(call,response);
                }
            }
        });
    }
    public void postData(String url,HashMap<String ,String > prams,final  RequestCallback requestCallback){
        FormBody.Builder fromBodybuilder = new FormBody.Builder();
        Log.i("aaaaa","aaaa");
        if (prams != null && prams.size()>0){
            for (Map.Entry<String,String > stringStringEntry : prams.entrySet()){
                fromBodybuilder.add(stringStringEntry.getKey(),stringStringEntry.getValue());
            }
        }
        Request requset = new Request.Builder()
                .url(url).post(fromBodybuilder.build()).build();
        okhttpClient.newCall(requset).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                if (requestCallback !=null){
                    requestCallback.failure(call, e);
                }
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (requestCallback !=null){
                    requestCallback.onResponse(call, response);
                }
            }
        });
    }
}

 

 

 

 

 

 

 

工具类需要写的回调接

//RequestCallback

package com.bwie.yuekao.utils;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Response;

public interface RequestCallback {
    void failure(Call call, IOException e);
    void onResponse(Call call, Response response);
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值