Android OkHttp 库:GET 请求 - 异常 EOFException:\n 未找到:大小 = 0 内容 =
Posted
技术标签:
【中文标题】Android OkHttp 库:GET 请求 - 异常 EOFException:\\n 未找到:大小 = 0 内容 =【英文标题】:Android OkHttp library: GET Request - Exception EOFException: \n not found: size=0 content=Android OkHttp 库:GET 请求 - 异常 EOFException:\n 未找到:大小 = 0 内容 = 【发布时间】:2016-03-08 11:12:35 【问题描述】:我在我的应用程序 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 Connectionth.it-bedna.cz:80, proxy=DIRECT@ hostAddress=85.118.128.42 cipherSuite=none protocol=http/1.1 (recycle count=0)
对同一地址的其他 Get 请求工作正常。如果我将此请求键入 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
);
【问题讨论】:
您的模拟器是否配置了任何代理?因为我只有在启用代理时才会收到此错误,否则工作正常。 【参考方案1】:如果您的服务器是th.it-bedna.cz
,如您的 logcat 信息中所示,您可以尝试以下代码:
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());
);
【讨论】:
我正在使用类似的代码,但它不起作用。网址是th.it-bedna.cz/api/v2/event/1/user?i=8 这个网址可以试试吗? 使用http://th.it-bedna.cz/api/v2/event/1/user
,logcat 2-04 16:17:11.465 1544-1558/com.example.asyncokhttp W/OkHttp: "status":1 12-04 16:17:11.465 1544-1558/com.example.asyncokhttp I/OkHttp: Responseprotocol=http/1.1, code=200, message=OK, url=http://th.it-bedna.cz/api/v2/event/1/user
啊,我刚刚在我的 android 应用程序中使用 http://th.it-bedna.cz/api/v2/event/1/user?i=8
进行了测试,它适用于上面相同的 logcat
哦...这很奇怪。我将不得不更多地看看它。您有什么提示可以解决问题吗?
还没有,请发布更多导致该异常的代码。【参考方案2】:
OkHttpClient 和 HttpURLConnection 也有同样的问题。 我的 android 模拟器被配置为使用代理,但我的代理不接受连接。
如果目标主机拒绝连接,是否使用代理无关紧要,您将获得该异常。
【讨论】:
以上是关于Android OkHttp 库:GET 请求 - 异常 EOFException:\n 未找到:大小 = 0 内容 =的主要内容,如果未能解决你的问题,请参考以下文章
Android常用开源库———————————OkHttp的使用方法