使用Retrofit踩到的坑(持续更新)

  1. 网络请求时多加了一条“/”,导致请求数据时一直失败
  2. 当json数据无法解析时,可以直接请求json数据,此时泛型使用JsonObject/jsonArray 进行请求,可以得到未解析的json数据
  3. 长传图片时
//必须使用Multipart进行上传
   @Multipart
    @POST("index.php?act=member&op=stepTwo")
    Observable approveTwo(
            @PartMap Map params
    );

 public void approveTwo(Subscriber subscriber, String back, String front) {
        File backFile = new File(back);
        File frontFile = new File(front);
        Map map = new HashMap<>();
        map.put("key", toRequstBody(getToken()));
        //上传图片时使用该类型方式
        map.put("idcard_back\";filename=\"" + backFile.getName(), RequestBody.create(MediaType.parse("image/jpg"), backFile));
        map.put("idcard_front\";filename=\"" + frontFile.getName(), RequestBody.create(MediaType.parse("image/jpg"), frontFile));
        map.put("is_face", toRequstBody("1"));
        map.put("client", toRequstBody("android"));
        Observable observable = httpService.approveTwo(map);
        toSubscribe(observable, subscriber);
    }

    /**
     * RequestBody解析字符串的方法
     *
     * @param value
     * @return
     */
    private RequestBody toRequstBody(String value) {
        RequestBody body = RequestBody.create(MediaType.parse("text/plain"), value);
        return body;
    }

你可能感兴趣的:(错误总结)