我开发基于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);
然后我通过实现我的界面和覆盖来启动正确的操作(在这种情况下显示带有正确消息的Dialog):
@Override
public int OnHTTPRespone(int httpMessage) {
// if httpMessage > 400 display message code
}
问题是网页视图显示的错误网址比我的对话框快。 换句话说,检查响应代码是为了减慢我需要加快一点。 我知道在OnHTTPRespone上升之前我无法显示我的网页视图,但整个应用程序变得不是非常用户友好。