相关疑难解决方法(0)

Android HttpsUrlConnection eofexception

我有一个问题,当我尝试读取任何输入时,我的HttpsURLConnection将抛出一个EOFException.该代码适用于某些网络调用,但在其他网络调用上失败.如果我尝试从连接中读取任何内容,则会因上述错误而失败.

例:

urlConnect.getResponseCode() // will throw error
urlConnect.getResponseMessage() // will throw error
BufferedInputStream in = new BufferedInputStream(urlConnect.getInputStream()); //will throw error
Run Code Online (Sandbox Code Playgroud)

以下是每个的堆栈跟踪:

GETRESPONSE:

03-14 09:49:18.547: W/System.err(6270): java.io.EOFException
03-14 09:49:18.547: W/System.err(6270):     at libcore.io.Streams.readAsciiLine(Streams.java:203)
03-14 09:49:18.547: W/System.err(6270):     at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:573)
03-14 09:49:18.547: W/System.err(6270):     at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:821)
03-14 09:49:18.547: W/System.err(6270):     at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283)
03-14 09:49:18.547: W/System.err(6270):     at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:495)
03-14 09:49:18.547: W/System.err(6270):     at libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)
Run Code Online (Sandbox Code Playgroud)

的BufferedInputStream:

03-14 09:39:14.077: W/System.err(5935): java.io.EOFException
03-14 09:39:14.077: W/System.err(5935):     at libcore.io.Streams.readAsciiLine(Streams.java:203)
03-14 09:39:14.077: W/System.err(5935):     at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:573)
03-14 09:39:14.077: W/System.err(5935):     at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:821)
03-14 09:39:14.077: W/System.err(5935):     at …
Run Code Online (Sandbox Code Playgroud)

android httpurlconnection eofexception

40
推荐指数
1
解决办法
2万
查看次数

Android的HttpURLConnection在HEAD请求上抛出EOFException

这个小代码片段可以在Mac的JVM上正常运行.不幸的是,它在Android 4.2上执行时崩溃了.

import java.net.HttpURLConnection;
import java.net.URL;

public class App
{
    public static void main( String... arguments ) throws Exception
    {
        HttpURLConnection connection = (HttpURLConnection) new URL( "https://github.com" ).openConnection();
        connection.setRequestMethod( "HEAD" );

        System.out.println( connection.getResponseCode() + "" );
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我更换https://github.comhttps://www.facebook.com它工作正常,但我无法找出原因.

该例外不包含消息; 所以这里至少是堆栈跟踪.

java.io.EOFException
        at java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:206)
        at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:98)
        at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:81)
        at libcore.net.http.HttpEngine.initContentStream(HttpEngine.java:541)
        at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:844)
        at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283)
        at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:495)
        at libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)
Run Code Online (Sandbox Code Playgroud)

java android http urlconnection httpurlconnection

17
推荐指数
1
解决办法
6825
查看次数

Android HttpURLConnection抛出EOFException

这是最简单的问题.

我使用HttpUrlConnection对象通过代理创建到我的服务器的HTTPS连接.

我的代理关闭连接但我的代码仍尝试重用相同的连接.所以我得到了EOFException.

我该如何处理这类案件?

android httpurlconnection eofexception

15
推荐指数
3
解决办法
1万
查看次数

在HttpsURLConnection中使用HttpDelete时,libcore.io.Streams.readAsciiLine(Streams.java:203)中的EOFException

我面临一条错误消息

java.io.EOFException
at libcore.io.Streams.readAsciiLine(Streams.java:203)
at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:579)
at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:827)
at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283)
at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177)
at libcore.net.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:271)
com.example.rest.MainActivity.excutePost(MainActivity.java:354)
at com.example.rest.MainActivity$1.run(MainActivity.java:86)
at java.lang.Thread.run(Thread.java:841)
Run Code Online (Sandbox Code Playgroud)

我的代码是

URL url = new URL(url);
con = (HttpsURLConnection) url.openConnection();
con.setRequestProperty("Content-Language", "en-US,en;q=0.8");
con.setRequestProperty("userID", "user20@yahoo.com");
con.setRequestProperty("password", "xyz123");
con.setRequestMethod(HttpDelete.METHOD_NAME);
con.setRequestProperty("Content-Type", "application/json");
con.setRequestProperty("Accept", "*/*");
con.addRequestProperty("Accept-Encoding", "gzip");
InputStream inputStream = con.getInputStream();
String convertInputStreamToString = convertInputStreamToString(inputStream);
Run Code Online (Sandbox Code Playgroud)

我试过这些链接

rest android web-services inputstream httpclient

9
推荐指数
0
解决办法
1169
查看次数