Java 安卓&x27;s HttpURLConnection在HEAD请求上引发EOFEException

Java 安卓&x27;s HttpURLConnection在HEAD请求上引发EOFEException,java,android,http,httpurlconnection,urlconnection,Java,Android,Http,Httpurlconnection,Urlconnection,这个小代码片段在我的Mac的JVM上运行良好。不幸的是,它在安卓4.2上执行时崩溃 import java.net.HttpURLConnection; import java.net.URL; public class App { public static void main( String... arguments ) throws Exception { HttpURLConnection connection = (HttpURLConnection)

这个小代码片段在我的Mac的JVM上运行良好。不幸的是,它在安卓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() + "" );
    }
}
如果我替换
https://github.com
https://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)
java.io.EOFException
位于java.util.zip.GZIPInputStream.readFully(GZIPInputStream.java:206)
位于java.util.zip.GZIPInputStream。(GZIPInputStream.java:98)
位于java.util.zip.GZIPInputStream。(GZIPInputStream.java:81)
位于libcore.net.http.HttpEngine.initContentStream(HttpEngine.java:541)
位于libcore.net.http.HttpEngine.readResponse(HttpEngine.java:844)
位于libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283)
位于libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:495)
位于libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)

这是Android类实现中的一个已知错误。调用
Connection.setRequestProperty(“接受编码”,“接受编码”)可用作解决方法


您的代码对我来说运行正常。确保你有互联网连接和正确的设置来访问URL。你在Android上运行了吗?为了将来的参考,这个错误在JB中被标记为已修复,但我在KK中遇到了完全相同的问题。他们已经为KK切换到基于OkHttp的实现,它似乎也有相同的bug。不幸的是,这个bug在跟踪器中是“受限”的,所以我不能要求重新打开它。同样的解决方法仍然有效。