【发布时间】:2015-08-05 08:36:03
【问题描述】:
我有一个 url,它进行 2 次内部重定向,然后最终返回 ok 响应。
第一个 URL::http://www.someurl.com/
重定向 URL 1::http://www.someurl_1.com/,响应为 302
重定向 URL 2: strong>:http://www.someurl_2.com/,响应为 302
最终网址::http://www.finalurl.com/,响应为 200
在内部重定向 URL 1 发送一些 cookie 到 重定向 URL 2。
我要做的是获取为 Redirect URL 2: 设置的 cookie。
这是我的 java 代码。
HttpClient client = HttpClientBuilder.create().build();
HttpGet get = new HttpGet(myurl);
get.setHeader("User-Agent", "Mozilla");
get.setHeader("Accept"," text/html,application/xhtml+xml,application/xml;");
get.setHeader("Accept-Language", "en-US,en;q=0.8");
get.setHeader("Accept-Encoding"," gzip, deflate");
get.setHeader("Connection","keep-alive");
get.setHeader("Cookie",JSESSIONID+");
// get.setHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
Header[] requestheaders = get.getAllHeaders();
System.out.println("requestheaders >>> ");
for(Header header: requestheaders){
System.out.println(header.getName()+"-------------------- "+header.getValue());
}
HttpResponse response = client.execute(get);
System.out.println("response 7 "+response);
System.out.println("Headers are");
Header[] headers = response.getAllHeaders();
for (int i = 0; i < headers.length; i++) {
System.out.println((headers[i].getName()+"___________________"+headers[i].getValue()));
}
此代码为我提供最终响应,而不是中间重定向响应。
因此,任何人都可以建议我什么是更好的方法。
我检查的另一件事是:-
- 我已禁用重定向,此响应为我提供了此过程的第一个 url。
- 我已使用 Jsoup 禁用重定向,其输出与上述相同。
虽然在 ruby 中可以获取这种重定向的 cookie,但我已经做到了。
但我必须在java中做到这一点。
httpclient 4.5
【问题讨论】:
标签: java httpclient