Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过对等Android请求重置连接_Android_Http_Webview_Httprequest - Fatal编程技术网

通过对等Android请求重置连接

通过对等Android请求重置连接,android,http,webview,httprequest,Android,Http,Webview,Httprequest,我试图在加载webview以检查http错误时检查状态代码错误 尽管当我尝试检查我的设备是否可以连接到链接时,几乎总是出现以下错误: java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer) at libcore.io.IoBridge.maybeThrowAfterRecvfrom(IoBridge.java:545) at libcore.io.IoBridge.recvf

我试图在加载webview以检查http错误时检查状态代码错误

尽管当我尝试检查我的设备是否可以连接到链接时,几乎总是出现以下错误:

java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer)
    at libcore.io.IoBridge.maybeThrowAfterRecvfrom(IoBridge.java:545)
    at libcore.io.IoBridge.recvfrom(IoBridge.java:509)
    at java.net.PlainSocketImpl.read(PlainSocketImpl.java:489)
    at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
    at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:241)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191)
    at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:82)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
    at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:180)
    at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
    at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
    at org.apache.http.impl.client.DefaultRequestDirector.createTunnelToTarget(DefaultRequestDirector.java:765)
    at org.apache.http.impl.client.DefaultRequestDirector.establishRoute(DefaultRequestDirector.java:664)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:384)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:575)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:498)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:476)
    at android.os.AsyncTask$2.call(AsyncTask.java:288)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    at java.lang.Thread.run(Thread.java:841)
Caused by: libcore.io.ErrnoException: recvfrom failed: ECONNRESET (Connection reset by peer)
    at libcore.io.Posix.recvfromBytes(Native Method)
    at libcore.io.Posix.recvfrom(Posix.java:141)
    at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:164)
    at libcore.io.IoBridge.recvfrom(IoBridge.java:506)
    ... 26 more
我尝试了其他链接,有时它也会给出这个错误,很少给出http 200

以下是我处理请求的方式:

class RetrieveConnectionStatus extends AsyncTask<String, Integer, Integer> {
        private Integer mHttpStatus;
        protected Integer doInBackground(String... urls) {
            try {
                DefaultHttpClient httpClient = new DefaultHttpClient();
                HttpGet httpRequest = new HttpGet(urls[0]);
                HttpResponse httpResponse = httpClient.execute(httpRequest);
                mHttpStatus = httpResponse.getStatusLine().getStatusCode();
                // if( mHttpStatus != 200) {

            } catch (Exception e) {
                L.e(CampaignScreen.class, Log.getStackTraceString(e));
                mHttpStatus = 404;
            }

            return mHttpStatus;
        }
}
类检索连接状态扩展异步任务{
私有整数mHttpStatus;
受保护的整数doInBackground(字符串…URL){
试一试{
DefaultHttpClient httpClient=新的DefaultHttpClient();
HttpGet httpRequest=新的HttpGet(URL[0]);
HttpResponse HttpResponse=httpClient.execute(httpRequest);
mHttpStatus=httpResponse.getStatusLine().getStatusCode();
//如果(mHttpStatus!=200){
}捕获(例外e){
L.e(activityscreen.class,Log.getStackTraceString(e));
mHttpStatus=404;
}
返回mHttpStatus;
}
}
更新:我正在通过3G访问,http页面也会出现此错误。同样,通过无线访问也不会出现问题


有人能帮我吗?发生了什么事?

执行此操作时,您的设备是否在WIFI或3G上?您能访问“http://”页面(非https页面)吗?我通过3G访问,http页面也会显示这些错误您使用的是什么电话和3G服务?看起来您的服务提供商可能有路由表错误或DNS解析的IP地址存在其他连接问题。换句话说,这是您的连接,而不是您试图访问的服务器…这可能是真的,因为我尝试通过wireless及其工作正常:(提供商有什么问题吗?