我使用Retrofit2调用了PATCH Web服务但是没有调用onResponse而且调用了onFailure尽管服务的 *** 作在服务器端完成了
无论何时,我都试图使用fiddler来检查它的工作,我发现问题是序列化即将到来的服务响应,当使用fiddler时,我发现没有JSON响应的内容,所以Retrofit服务认为它失败了,因为没有内容,也无法序列化EMPTY内容
并给我这个错误
java.io.EOFException: End of input at line 1 column 1
提琴手原始回应
http/1.1 200 OKServer: Nginx/1.9.4Date: Wed, 02 Mar 2016 09:55:55 GMTContent-Type: application/JsonContent-Length: 0Connection: closeStatus: 200 OKX-Content-Type-Options: nosniff
fiddler Json的回应是空的
java中的webservice
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 }}
我试图用String,JsonObject,emptyCalssBody替换对象….但它失败了
webservice的接口
@PATCH("alerts/{alert_ID}/accept")Call<Object> accept_invited_alerts(@header("X-API-Token") String API_token, @Path("alert_ID") int alert_ID);
解决方法:
如果正文为空,则返回voID
@PATCH("alerts/{alert_ID}/accept") Call<VoID> accept_invited_alerts(@header("X-API-Token") String API_token, @Path("alert_ID") int alert_ID);
对于使用Rx java进行改造,你可以使用这样的东西
@PATCH("alerts/{alert_ID}/accept") Observable<Response<VoID>> accept_invited_alerts(@header("X-API-Token") String API_token, @Path("alert_ID") int alert_ID);
总结 以上是内存溢出为你收集整理的android – Retrofit2错误java.io.EOFException:第1行第1列的输入结束全部内容,希望文章能够帮你解决android – Retrofit2错误java.io.EOFException:第1行第1列的输入结束所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)