首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >方法的状态码

方法的状态码
EN

Stack Overflow用户
提问于 2011-07-08 20:33:52
回答 2查看 352关注 0票数 2

我正在执行"GET“方法的httpclient示例程序。

代码语言:javascript
复制
    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 (过滤-http或(http.request.method == POST or http.request.method == GET) ),然后在浏览器中键入此url,按enter,最后我注意到在wireshark中上述url的返回码是302,这意味着它被重定向。

此外,当我运行我的程序并签入wireshark时,我看到该方法返回代码302。所以我的问题是,为什么它给我200作为状态码作为输出,而不是302

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-08 20:42:12

根据documentation

默认情况下,

GetMethods将遵循来自http服务器的重定向请求。可以通过调用setFollowRedirects(False)禁用此行为。

票数 2
EN

Stack Overflow用户

发布于 2011-07-08 20:40:15

您可能会遵循设置为true的重定向。您可以使用getFollowRedirects()方法获得此结果。如果返回true,它将自动跟随重定向。您可以将其设置为false以删除该行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6624473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档