当Android尝试连接到强制网络门户时,我尝试在重定向之前获取HTTP数据。
以下是代码片段:
httpclient = new DefaultHttpClient(/*params*/);
String url = "http://google.com";
Log.d("test_runner", "URL: " + url);
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
entity.consumeContent();
}
for(Header h : response.getAllHeaders()){
Log.d("test_runner", h.toString());
}
Log.d("test_runner", response.getStatusLine().getStatusCode() + "");
response.getStatusLine();
当我使用Fiddler Web Debugger
时,我看到了以下流程:
所以第一次关闭我需要接收状态302并且在重定向状态200之后。
然而,我在重定向后直接得到回复。
听起来Android会自动重定向,我无法抓住它。
如何在重定向之前获取响应信息(a.e.Fiddler第1行,标题为302)?
谢谢
答案 0 :(得分:1)
我找到了解决方案,(没想到这么快)
HttpParams params = new BasicHttpParams();
HttpClientParams.setRedirecting(params, false);
httpclient = new DefaultHttpClient(params);
....