我正在使用HTTPClient 4.3.5版本但看起来像httpclient无法处理url重定向。 在浏览器中如果我添加以下URL
但是在HTTPclient中我得到200 ok但是pagecontent与上面的第二个URL不匹配。 以下是我的代码。请帮助我如何获得第二页内容。
HttpEntity entity=null;
HttpGet httpget=null;
HttpResponse response=null;
HttpClient httpclient = HttpClientBuilder.create()
.setRedirectStrategy(new LaxRedirectStrategy()).build();
httpget = new HttpGet("http://www.graybar.com/store/SearchDisplay?categoryId=&storeId=11751&catalogId=10551&langId=-1&sType=SimpleSearch&resultCatEntryType=2&showResultsPage=true&searchSource=Q&pageView=&beginIndex=0&pageSize=15&searchType=100&orderBy=5&searchTerm=25062903");
httpget.setHeader(HttpHeaders.USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2");
response = httpclient.execute(httpget);
entity = response.getEntity();
String thirdPartyPageContent=EntityUtils.toString(entity);
System.out.println(thirdPartyPageContent);
答案 0 :(得分:1)
第一个网址返回的网页内容包含javascript。当加载页面(onload)时,浏览器会执行此javascript的部分内容。此部分请求与服务器不同的页面,因此覆盖第一个URL加载的页面。由于HttpClient不解释或执行javascript,因此不会重新加载页面。
服务器返回代码301或302指示正确的http重定向.HttpClient可以遵循这些重定向。