使用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; }

    推荐阅读