当我附加参数时发生改造 POST java.io.EOFException

Retrofit POST java.io.EOFException occurs when I append parameters

我正在为 POST 请求使用改造 API 如果我使用它来请求而不发送任何参数,它对我来说工作正常:

@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);

它returns

  retrofit.RetrofitError: java.io.EOFException

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

我找到了解决办法。在 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))

现在错误应该已经解决了。