当我追加参数时发生POST java.io.EOFException

时间:2015-10-27 09:37:59

标签: java android web-services post retrofit

我正在使用改装API进行POST请求它对我来说很好,如果我使用它来请求而不发送任何这样的参数:

@POST("/api/basic/all")
void postFeedCat(Callback<AllNews> callback);

但是当我想尝试这个时:

@FormUrlEncoded
@POST("/api/news/all")
void postFeedNews(@Field("news_Id") String news_Id, Callback<AllNews> callback);

它返回

  retrofit.RetrofitError: java.io.EOFException

但是,如果尝试多次,它会成功运作

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。在Android 4.4中,它们与OkHttpclient一起使用,这就是为什么它在4.4上工作而不是在旧的Android版本上工作。

要解决此问题,请在gradle中添加依赖项:

compile 'com.squareup.okhttp:okhttp:1.5.1'

并创建一个像这样的新客户端:

OkHttpClient client = new OkHttpClient();

将新客户端添加到restadapter以使用它:

setClient(new OkClient(client))

现在应该解决错误。