当我附加参数时发生改造 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))
现在错误应该已经解决了。
我正在为 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))
现在错误应该已经解决了。