我正在使用org.apache.httpcomponents.httpclient通过cookie发送http请求:
```
URI uri = new URIBuilder().setScheme("https").setHost("api.weibo.com").setPath("/oauth2/authorize").setParameter("client_id","3099336849").setParameter("redirect_uri","http://45.78.24.83/authorize").setParameter("response_type", "code").build();
HttpGet req1 = new HttpGet(uri);
RequestConfig config = RequestConfig.custom().setRedirectsEnabled(false).build();
req1.setConfig(config);
req1.setHeader("Connection", "keep-alive");
req1.setHeader("Cookie", cookie);
req1.setHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36");
response = httpclient.execute(req1);
```
我搜索了很多并尝试启用/禁用自动重定向,但它似乎对我不起作用。所以有人可以告诉我如何像浏览器那样获取位置标头响应吗?
答案 0 :(得分:2)
你无法看到' location'标题,因为HttpClient立即跟着重定向 - 甚至之前给你那个响应。
设置HttpClient时尝试disabling redirect:
HttpClient instance = HttpClientBuilder.create().disableRedirectHandling().build();
检查此网址,您将查看位置标题:
URI uri = new URIBuilder().setScheme("https").setHost("www.googlemail.com").setPath("/").build();
答案 1 :(得分:0)
我发现了我真正的问题......我没有在我的代码中通过auth进程,因此我不断获得oauth2页面。在我的请求中设置了所有标头,就像浏览器一样,最后我得到正确的回应。