我在我的应用程序OkHttp库(http://square.github.io/okhttp/)中使用,并在一个简单的GET请求中得到此异常:
Caused by: java.io.EOFException: \n not found: size=0 content=...
at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:201)
at com.squareup.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:191)
...
unexpected end of stream on Connection{th.it-bedna.cz:80, proxy=DIRECT@ hostAddress=85.118.128.42 cipherSuite=none protocol=http/1.1} (recycle count=0)
其他获取同一地址的请求可以正常工作。如果我向Chrome输入此请求,它也可以正常工作。你知道哪里有问题吗?
感谢您的任何建议。
编辑:GET的代码
public Call doGetRequest(String url, Callback callback) {
com.squareup.okhttp.Request request = new com.squareup.okhttp.Request.Builder()
.url(url)
.build();
Call call = client.newCall(request);
call.enqueue(callback);
return call;
}
使用:
void getData()
{
String url = "http://th.it-bedna.cz/api/v2/event/1/user?i=8";
Singleton.getInstance().doGetRequest(url, new Callback() {
@Override
public void onFailure(Request request, IOException e) {
Log.i("CDT", "onFailure: " + e);
}
@Override
public void onResponse(Response response) throws IOException {
}
});
}
答案 0 :(得分:0)
如果您的服务器是{log}信息中的th.it-bedna.cz
,您可以尝试以下代码:
OkHttpClient client = new OkHttpClient();
// GET request
Request request = new Request.Builder()
.url("http://th.it-bedna.cz")
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
Log.e(LOG_TAG, e.toString());
}
@Override
public void onResponse(Response response) throws IOException {
Log.w(LOG_TAG, response.body().string());
Log.i(LOG_TAG, response.toString());
}
});
答案 1 :(得分:0)
我在 OkHttpClient 和 HttpURLConnection 时遇到了同样的问题。 我的android模拟器配置为使用代理,但我的代理不接受连接。
如果您使用代理服务器,如果目的地主机拒绝连接,则无法使用代理服务器,您将获得该异常。