【发布时间】:2022-01-27 06:52:06
【问题描述】:
我使用 Retrofit2 调用了 PATCH 网络服务,但没有调用 onResponse 并且调用了 onFailure 尽管服务端运行成功完美
每当我尝试使用 fiddler 来检查服务的工作时,我发现问题是序列化服务的即将到来的响应,当使用 fiddler 时,我发现 JSON 响应没有内容,所以 Retrofit 服务假设它失败了,因为没有内容并且它无法序列化 EMPTY 内容 并给我这个错误
java.io.EOFException: End of input at line 1 column 1
提琴手原始响应
HTTP/1.1 200 OK
Server: nginx/1.9.4
Date: Wed, 02 Mar 2016 09:55:55 GMT
Content-Type: application/json
Content-Length: 0
Connection: close
Status: 200 OK
X-Content-Type-Options: nosniff
Fiddler Json 响应为空
java 中的网络服务
Call<Object> call = TimeCapp.services.accept_invited_alerts(HomeActivity.api_token, alert_id);
call.enqueue(new Callback<Object>()
{
@Override
public void onResponse (Call<Object> call, Response<Object> response)
{
if (response.isSuccess()) {
String x = response.body();
}
}
@Override
public void onFailure (Call<Object>call, Throwable t)
{
String x = t.getMessage();//java.io.EOFException: End of input at line 1 column 1
}
}
我尝试将 object 替换为 String,JsonObject,emptyCalssBody .... 但失败了
网络服务的接口
@PATCH("alerts/{alert_id}/accept")
Call<Object> accept_invited_alerts(@Header("X-Api-Token") String
api_token, @Path("alert_id") int alert_id);
【问题讨论】:
-
如果正文为空,则返回 void
-
我在 java 代码中将对象类型替换为 Void 类型,并且在 web 服务返回中没有更改,感谢您的提示,以便您可以发布答案以接受并标记它:) @Bhargav
标签: android web-services retrofit2