Android 在AsyncTask中获取HTTP响应代码需要很长时间
我正在开发基于WebView的Android应用程序,在显示我的页面之前,我需要检查我要加载的web的http状态码是否<400(如果有错误)Android 在AsyncTask中获取HTTP响应代码需要很长时间,android,http,webview,android-asynctask,httpresponse,Android,Http,Webview,Android Asynctask,Httpresponse,我正在开发基于WebView的Android应用程序,在显示我的页面之前,我需要检查我要加载的web的http状态码是否
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
}