如何在重定向之前在Android上获得GET响应?

时间:2013-07-08 15:51:09

标签: java android captivenetwork

当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时,我看到了以下流程:

enter image description here

所以第一次关闭我需要接收状态302并且在重定向状态200之后。

然而,我在重定向后直接得到回复。

enter image description here

听起来Android会自动重定向,我无法抓住它。

如何在重定向之前获取响应信息(a.e.Fiddler第1行,标题为302)?

谢谢

1 个答案:

答案 0 :(得分:1)

我找到了解决方案,(没想到这么快)

HttpParams params = new BasicHttpParams();
HttpClientParams.setRedirecting(params, false);

httpclient = new DefaultHttpClient(params);
....