0

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 が自動的にリダイレクトするように聞こえますが、それをキャッチできません。

リダイレクトの前に応答情報を取得するにはどうすればよいですか (Fiddler の 1 行目、302 のヘッダー)。

ありがとうございました

4

1 に答える 1