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 在AsyncTask中获取HTTP响应代码需要很长时间_Android_Http_Webview_Android Asynctask_Httpresponse - Fatal编程技术网

Android 在AsyncTask中获取HTTP响应代码需要很长时间

Android 在AsyncTask中获取HTTP响应代码需要很长时间,android,http,webview,android-asynctask,httpresponse,Android,Http,Webview,Android Asynctask,Httpresponse,我正在开发基于WebView的Android应用程序,在显示我的页面之前,我需要检查我要加载的web的http状态码是否

我正在开发基于WebView的Android应用程序,在显示我的页面之前,我需要检查我要加载的web的http状态码是否<400(如果有错误)

Web View code:
   @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);

                    GetHTTPStatus task = new GetHTTPStatus(thisActivity);
                    task.execute(url);
                    httpError = false;

            }
获取状态代码的代码:

 // Below code is parto of:static class GetHTTPStatus extends AsyncTask<String, Void, Integer> {

                HttpClient httpClient;
                HttpParams params1 = new BasicHttpParams();
                params1.setParameter(CoreProtocolPNames.PROTOCOL_VERSION,HttpVersion.HTTP_1_1);
                httpClient = new DefaultHttpClient(params1);
                HttpPost post = new HttpPost(RequestedURL);
                HttpResponse response = httpClient.execute(post);
                int code = response.getStatusLine().getStatusCode();
                listener.OnHTTPRespone(code);
问题是web视图显示错误url的速度比我的对话框快。 换句话说,对响应代码的检查会降低速度我需要将其加快一点。
我知道,在OnHttpSpone出现之前,我无法显示我的网页视图,但整个应用程序变得不太友好。

此外,我可以补充一点,即webview中的onReceivedError不会捕获HTTP错误(仅内容错误)不是下载整个页面,而是仅下载标题作为一个选项?我这样做是为了加快速度(我只需要知道该页面是否可用)但速度仍然很慢。
 @Override
    public int OnHTTPRespone(int httpMessage) {
// if httpMessage > 400 display message code
}