メソッドのステータスコード

get http httpclient java
メソッドのステータスコード

「GET」メソッドのhttpclientの以下のサンプルプログラムを実行しています。

    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.params.HttpMethodParams;

    public class TestMethodStatuscode {
public static void main(String[] args) throws Exception
{
     HttpClient client = new HttpClient();
     client.getParams().setParameter(HttpMethodParams.USER_AGENT,
     "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (.NET CLR 3.5.30729)");
     //client.getParams().setCookiePolicy(org.apache.http.client.params.CookiePolicy.BROWSER_COMPATIBILITY);

    GetMethod get = new GetMethod("http://de.mg40.mail.yahoo.com/neo/launch?.rand=80g4u84m26ifl");
    //get_siteurl.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
    client.executeMethod(get);
    System.out.println("Status code: "+get.getStatusCode());
    //System.out.println(get.getResponseBodyAsString());
    get.releaseConnection();
}

}

出力:-ステータスコード:200

取得しようとしているURLは、 yahoo.de`メールアカウントへのログインプロセス中に取得するURLです( yahoo.de`へのログインは機能しなかったため、このコードを試しました)。 wireshark(filter-httpまたは `(http.request.method == POSTまたはhttp.request.method == GET)`を有効にし、ブラウザーでこのURLを入力してEnterキーを押すと、最終的に戻りコード上記のURLの「302」は、リダイレクトされることを意味します。

また、プログラムを実行してwiresharkをチェックインすると、メソッドがコード「302」を返すことがわかります。 だから私の質問は、それが出力としてステータスコードとして「200」を与えており、「302」ではないのはなぜですか?

  2  0


ベストアンサー

_
GetMethodsは、デフォルトでhttpサーバーからのリダイレクト要求に従います。 この動作は、setFollowRedirects(false)を呼び出すことで無効にできます。
_

2


おそらくtrueに設定されたリダイレクトに従います。 これは `getFollowRedirects()`メソッドで取得できます。 それがtrueを返す場合、自動的にリダイレクトに従います。 この動作を削除するには、falseに設定します。

1


タイトルとURLをコピーしました