Android平台下轻量级http网络传输库

2019-12-10 19:16:49王振洲

POST请求   

 AsyncHttpRequest request = new AsyncHttpUtil.Builder()
      .url("http://www.easck.com/fund/service.do?func=getProvinces")
      .setStrBody("body内容")//post内容
      .setCallable(new SimpleRequestCallable() {
        @Override
        public void onFailed(int errorCode, String errorMsg) {
          //请求失败
        }

        @Override
        public void onSuccess(String responseInfo) {
          //请求成功
        }
      })
      .build().post();

POST请求(模拟Form表单)

  AsyncHttpRequest request = new AsyncHttpUtil.Builder()
      .url("http://www.easck.com/fund/service.do?func=getProvinces")
      .addFormData("a", "1")//设置form表单数据,也可以调用setFormDatas方法
      .addFormData("b", "luoxudong")
      .setCallable(new SimpleRequestCallable() {
        @Override
        public void onFailed(int errorCode, String errorMsg) {
          //请求失败
        }

        @Override
        public void onSuccess(String responseInfo) {
          //请求成功
        }
      })
      .build().post();

POST请求(内容为二进制数据)

  AsyncHttpRequest request = new AsyncHttpUtil.Builder()
      .url("http://www.easck.com/fund/service.do?func=getProvinces")
      .setBinaryBody(new byte[]{1,2,3,4,5})
      .setCallable(new BinaryRequestCallable() {

        @Override
        public void onFailed(int errorCode, String errorMsg) {
          //请求失败
        }

        @Override
        public void onSuccess(byte[] buffer) {
          //请求成功
        }
      })
      .build().post();

POST请求(JSON字符串自动转换对象)

  List<String> list = new ArrayList<String>();
      list.add("item1");
      list.add("item2");
      Request req = new Request();
      req.setKey1("value1");
      req.setKey2(1);
      req.setKey3(true);
      req.setKey4(list);

      AsyncHttpRequest request = new AsyncHttpUtil.Builder()
      .url("http://www.easck.com/fund/service.do?func=getProvinces")
      .setRequestObj(req)//json格式请求内容
      .setJsonRequestInterceptor(new JsonRequestInterceptor() {//请求数据拦截器,自定义json解析器

        @Override
        public String convertJsonToObj(Object requestObj) {
          return new Gson().toJson(requestObj);
        }
      })
      .setResponseClass(Response.class)
      .setJsonResponseInterceptor(new JsonResponseInterceptor<Response>() {//返回结果拦截器,方便自定义json解析器以及对返回结果作简单预处理。

        @Override
        public Response convertJsonToObj(String responseStr, Class<Response> mResponseClass) {
          return new Gson().fromJson(responseStr, mResponseClass);
        }

        @Override
        public boolean checkResponse(Response response) {
          if (response.getServerResult().getResultCode() == 0){
            return true;
          }
          setErrorCode(AsyncHttpExceptionCode.defaultExceptionCode.getErrorCode());
          setErrorMsg(response.getServerResult().getResultMessage());
          return false;
        }

      })
      .setCallable(new JsonRequestCallable<Response>() {
        @Override
        public void onFailed(int errorCode, String errorMsg) {
          //请求失败
        }

        @Override
        public void onSuccess(Response responseInfo) {
          //请求成功
        }
      })
      .build().post();