高效开发使用框架请求https(xutils3 Nohttp,OkhttpUtils(zhy))

来源:互联网 发布:java 图片文字合成 编辑:程序博客网 时间:2024/05/18 02:19

注意SSLContextUtil 类请看我上篇

1.xutils3

private void getNet() {
RequestParams param=new RequestParams(“https://kyfw.12306.cn/otn/“);
param.setSslSocketFactory(SSLContextUtil.getSSLContext().getSocketFactory());
x.http().request(HttpMethod.GET, param, new Callback.CommonCallback() {
@Override
public void onSuccess(String result) {
Log.i(“gsc”,result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
Log.i(“gsc”,ex.getMessage());
}

        @Override        public void onCancelled(CancelledException cex) {            Log.i("gsc",cex.getMessage());        }        @Override        public void onFinished() {        }    });}

2 。 NOhttp

private void getNohhtp() {
Request request = NoHttp.createStringRequest(“https://kyfw.12306.cn/otn/“, RequestMethod.GET);
request.setSSLSocketFactory(SSLContextUtil.getDefaultSLLContext().getSocketFactory());
RequestQueue requestQueue = NoHttp.newRequestQueue();
requestQueue.add(1, request, new OnResponseListener() {
@Override
public void onStart(int what) {

        }        @Override        public void onSucceed(int what, Response<String> response) {        Log.i("gsc","----"+response.get());        }        @Override        public void onFailed(int what, Response<String> response) {        }        @Override        public void onFinish(int what) {        }    });}

3. OkHttpUtils;( 作者 泓洋大神)

  1. 需要在Application初始化

    1. private void zhyokhttps() {
      InputStream ins =null;
      try {
      ins= getAssets().open(“srca.cer”);
      } catch (IOException e) {
      e.printStackTrace();
      }
      HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(new InputStream[]{ins}, null, null);
      OkHttpClient okHttpClient = new OkHttpClient.Builder()
      .sslSocketFactory(sslParams.sSLSocketFactory, sslParams.trustManager)

      .build();
      OkHttpUtils.initClient(okHttpClient);
      // OkHttpClientManager.getInstance()
      // .setCertificates(getAssets().open(“srca.cer”));
      }

#

private void getHy() {
OkHttpUtils.get().url(“https://kyfw.12306.cn/otn/“).build().execute(new StringCallback() {
@Override
public void onError(Call call, Exception e, int id) {

        }        @Override        public void onResponse(String response, int id) {            Log.i("gsc","ok=="+response);        }    });} 
0 0
原创粉丝点击