0

我正在编写一个使用 http 请求获取数据的网络 android 应用程序。数据为 HTML 格式。我使用 Apache HttpClient 和 JSoup。

当我的移动互联网提供商流量不足时,我总是被重定向到提供商的页面,说我应该支付一些钱。当然,解析这个页面是个坏主意。

如何检测发生的页面替换?

4

2 回答 2

1

此代码将帮助您了解请求的最终目标,如果不是您请求的页面,是否是提供程序页面。

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);

谢谢

于 2013-08-20T07:51:58.443 回答
0

如果您的提供商通过立即返回 a200 OK但没有向您提供您请求的资源来欺骗您,那么您最好的选择可能是设置一个自定义 HTTP 响应标头,您的客户端可以在继续之前检查该标头。

于 2013-08-20T07:57:47.537 回答