Retrofit2+RxJava2 使用POST方式提交JSON数据,服务器无法解析的问题

使用Retrofit2+RxJava2时候跳了个坑
提交Json格式的数据到服务器时,总是提交不成功,不然就是提交成功后没有获取到内容
不管是使用JSONObject封装好数据提交还是使用FormBody.build()构建一个RequstBody提交都是失败,最后采用create的方式才能提交成功

JSONObject requestData = new JSONObject();
            requestData.put("content", comment);
            RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), requestData.toString());

接口如下:

@POST("/comment")
    Observable>
    userComment(@Body RequestBody requestBody, @Query("id") int newsId);

注:使用Map方式POST时候会加上注解 @FormUrlEncoded
但是使用RequstBody时,切记不能加上,否则报错,提示

java.lang.IllegalArgumentException: @Body parameters cannot be used with form or multi-part encoding. (parameter #1)

你可能感兴趣的:(Android日常)