Код состояния метода - PullRequest
2 голосов
/ 08 июля 2011

Я выполняю следующую примерную программу httpclient метода «GET».

    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, которым я являюсьПопытка получить какой-то URL-адрес, который я получаю в процессе входа в учетную запись электронной почты yahoo.de (вход в систему yahoo.de у меня не работает, поэтому пробовал этот код).Если я включаю wireshark (filter-http или (http.request.method == POST or http.request.method == GET)), а затем набираю этот URL в браузере, нажимаю enter и, наконец, я замечаю в wireshark, что код возврата указанного выше URL равен 302, что означает, что он перенаправлен.

Также, когда я запускаю свою программу и проверяю wireshark, я вижу, что метод возвращает код 302. Поэтому мой вопрос заключается в том, почему он выдает мне 200 в качестве кода состояния в качестве вывода, а не 302?

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

Согласно документации :

GetMethods будет следовать запросам перенаправления с http-сервера по умолчанию.Это поведение можно отключить, вызвав setFollowRedirects (false).

1 голос
/ 08 июля 2011

Вы, вероятно, следуете перенаправлениям, установленным в true.Вы можете получить это с помощью метода getFollowRedirects().Если это возвращает true, оно будет автоматически следовать за перенаправлениями.Вы можете установить значение false, чтобы удалить это поведение.

...