Java 安卓&x27;s HttpURLConnection在HEAD请求上引发EOFEException
这个小代码片段在我的Mac的JVM上运行良好。不幸的是,它在安卓4.2上执行时崩溃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)
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在跟踪器中是“受限”的,所以我不能要求重新打开它。同样的解决方法仍然有效。