我正在编写一个使用 http 请求获取数据的网络 android 应用程序。数据为 HTML 格式。我使用 Apache HttpClient 和 JSoup。
当我的移动互联网提供商流量不足时,我总是被重定向到提供商的页面,说我应该支付一些钱。当然,解析这个页面是个坏主意。
如何检测发生的页面替换?
我正在编写一个使用 http 请求获取数据的网络 android 应用程序。数据为 HTML 格式。我使用 Apache HttpClient 和 JSoup。
当我的移动互联网提供商流量不足时,我总是被重定向到提供商的页面,说我应该支付一些钱。当然,解析这个页面是个坏主意。
如何检测发生的页面替换?
此代码将帮助您了解请求的最终目标,如果不是您请求的页面,是否是提供程序页面。
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpget = new HttpGet("http://www.google.com/");
HttpResponse response = httpclient.execute(httpget, localContext);
HttpHost target = (HttpHost) localContext.getAttribute(
ExecutionContext.HTTP_TARGET_HOST);// this is the final page of the request
System.out.println("Final target: " + target);
HttpEntity entity = response.getEntity();
EntityUtils.consume(entity);
谢谢
如果您的提供商通过立即返回 a200 OK
但没有向您提供您请求的资源来欺骗您,那么您最好的选择可能是设置一个自定义 HTTP 响应标头,您的客户端可以在继续之前检查该标头。