【发布时间】:2016-03-12 11:54:36
【问题描述】:
我正在使用 Retrofit 在我的网络服务器中发出 POST 请求。
但是,当响应状态为422 (unprocessable entity) 时,我似乎无法获取响应正文。响应正文始终为null。
我想知道我是否做错了什么,或者是否有解决方法。因为我在Postman的请求中使用了相同的json,它正常返回body。
这是方法:
@Headers("Content-Type: application/vnd.api+json")
@POST("my_endpoint")
Call<JsonObject> postEntry(@Header("Authorization") String authorization, @Body JsonObject json);
主体是一个 JsonObject,我没有像文档说的那样进行序列化。但我不认为这是问题所在。
【问题讨论】:
-
您的 api 是否在
422错误中返回了一些正文?你是用安卓地图的吗? -
@DeividiCavarzan 是的,正如我在问题中提到的,当我使用 Postman 发出请求时,它会完美地返回正文。我在两个地方都使用相同的 json 对象。
-
@DeividiCavarzan 关于映射,是的,我做到了。它实际上使用
response.body() == null执行回调中的onResponse(Response<JsonObject> response, Retrofit retrofit)。 -
@Erick 你的请求没有完成,所以你面临这个问题..
-
我建议在发送时拦截你的请求,使用 OkHttp 拦截器,看看你是否发送正确,与 Postman 的比较一下
标签: android json post retrofit