0

当 Android 尝试连接到 Captive Portal 时,我尝试在重定向之前获取 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会自动重定向,我无法捕捉到它。

如何在重定向之前获取响应信息(来自 Fiddler 的第一行,302 的标题)?

谢谢

4

1 回答 1

1

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

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

httpclient = new DefaultHttpClient(params);
....
于 2013-07-08T16:03:06.210 回答