我使用Retrofit2调用了PATCHWeb服务,但没有调用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中的Web服务
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替换为字符串、JsonObject、emptyCalssBody ...,但失败
Web服务的接口
@PATCH("alerts/{alert_id}/accept")
Call<Object> accept_invited_alerts(@Header("X-Api-Token") String
api_token, @Path("alert_id") int alert_id);
5条答案
按热度按时间bd1hkmkf1#
如果主体为空,则返回void
对于Rxjava改进,您可以使用如下代码
编辑:对于Kotlin
和
tsm1rwdh2#
您可以创建空转换器工厂为空的类:
并添加到代码创建中。例如:
我希望它能帮助你的问题。谢谢!
编辑!!!
对于Kotlin用例,您可以检查以下内容
}
uttx8gqw3#
非常感谢您的光临。
阿皮
班级:
cotxawn74#
对于我在laravel我没有发送任何响应后,函数完成只是添加以下行在服务器端帮助。这可以适应您正在使用的语言。只是发送一些响应从服务器端。
oyt4ldly5#
我在我的Sping Boot 服务中也遇到了类似的问题。问题出在Content-Length头值上。任何超过指定字节数的内容都会导致问题。
取出顶盖后,问题得到解决。
您可以移除信头,或尝试使用较大的值。