OKhttp網絡請求

public class OKHttpUtils {
    private Handler handler=new Handler();
    public  Handler getHandler(){
        return handler;
    }
    //單例
    private  static  OKHttpUtils okHttpUtils=new OKHttpUtils();
    private OKHttpUtils(){};
    public static OKHttpUtils getInstance(){
        return  okHttpUtils;
    }

    private OkHttpClient client;
    private  void  initOkHttpClient(){
        //實例出來client對象
        if (client==null){
            client=new OkHttpClient.Builder().build();
        }

    }
    //使用工具類,發起網絡請求
    public  void  doGet(String url, Callback callback){
        initOkHttpClient();
        Request request=new Request.Builder().url(url).build();
        Call call=client.newCall(request);
        call.enqueue(callback);

    }

}

public abstract class OnUiCallback implements Callback{
    private Handler handler=OKHttpUtils.getInstance().getHandler();
    public  abstract  void  onFailed(Call call, IOException e);
    public  abstract  void  onsuccess(String result)throws  IOException;
    @Override
    public void onFailure(final Call call, final IOException e) {
        handler.post(new Runnable() {
            @Override
            public void run() {
                onFailed(call,e);
            }
        });
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        final String result=response.body().string();
        handler.post(new Runnable() {
            @Override
            public void run() {
                try {
                    onsuccess(result);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章