-1

次のページhttp://support.xbox.com/en-US/xbox-360/console-freeze/screen-freeze-wizardかどうかをテストしようとしています。ページはhttp://support.xbox.com/en-US/xbox-360/console-freeze/screen-freeze-solutionにリダイレクトされますが、ヘッダーには表示されません。

私のアプリはページ URL のステータスをチェックします。このリダイレクトに従って、404 または 200 になるかどうかを確認する最善/最速の方法は何ですか。

編集: fiddler2 を使用してページのヘッダーを確認すると、次のようになります。

HTTP/1.1 301 Moved Permanently
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html
Expires: -1
Location: /en-US/xbox-360/console-freeze/screen-freeze-solution
X-UA-Compatible: IE=edge
X-Content-Type-Options: nosniff
Content-Length: 0
Vary: Accept-Encoding
Date: Mon, 03 Sep 2012 15:14:16 GMT
Connection: keep-alive

これはリダイレクトを提供します。私のコードは次のとおりです

public void status() {

    HttpClient hc = new DefaultHttpClient();
    HttpHead hh = new HttpHead("http://support.xbox.com/en-US/xbox-360/console-freeze/screen-freeze-wizard");
    System.out.println("Requesting : " + hh.getURI());

    try {
        HttpResponse response = hc.execute(hh);
        System.out.println("Protocol : " + response.getProtocolVersion());
        System.out.println("Status code : " + response.getStatusLine().getStatusCode());

        Header [] headers = response.getAllHeaders();
        for (Header header : headers) {
          System.out.println(" --> " + header.getName() + ":" + header.getValue());
        }

    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }


}

ただし、次の応答しか返されません。

Requesting : http://support.xbox.com/en-US/xbox-360/console-freeze/screen-freeze-wizard
Protocol : HTTP/1.1
Status code : 404
 --> Cache-Control:private
 --> Content-Length:0
 --> X-Content-Type-Options:nosniff
 --> Date:Mon, 03 Sep 2012 15:23:59 GMT
 --> Connection:keep-alive
...complete.
4

2 に答える 2

1

リクエストがブラウザが行うリクエストと同一である場合、同じ応答が得られることを保証できます。ブラウザが送信する他のヘッダーをチェックして、Java アプリケーションで同じヘッダーを送信できるかどうかを確認します。

于 2012-09-03T15:46:16.940 に答える
0

fiddler2 は HttpGet リクエストを使用し、ヘッダーを読み取るだけのようです。そのため、コードを変更することで、探していた正しい応答を得ることができました。

于 2012-09-03T17:04:12.723 に答える