我正在尝试获取
的html源代码总的来说,我做了很多次,从来没有遇到过问题,但这个特定的网站让我很难过。
无论我尝试什么,我都会得到一个人头稠密的回应,但这是一个空洞的身体。
它唯一有效的时间我实际得到了完整的响应,如果我手动将请求标头中的Cookie设置为等于我实际浏览器的Cookie。
我尝试通过首先获取连接标头并通过这些设置Cookie来自动执行此过程,但是再一次,我得到一个空白的身体。
这是我获取Cookie的方法,然后为请求设置它。我也尝试过使用Apache HttpClient。结果相同。
URL url = new URL(urlStr);
URLConnection connection = url.openConnection();
connection.addRequestProperty("User-Agent",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36");
Map<String, List<String>> headers = connection.getHeaderFields();
connection = url.openConnection();
String cookie =
headers.get("Set-Cookie").get(0).split(";")[0] + "; " + headers.get("Set-Cookie").get(1).split(";" + "")[0];
System.out.println("cookie = " + cookie);
connection.addRequestProperty("User-Agent",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.101 Safari/537.36");
connection.addRequestProperty("Cookie", cookie);
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder sb = new StringBuilder();
String str;
while ((str = br.readLine()) != null) {
sb.append(str);
}
return sb.toString();
感谢任何帮助。提前谢谢。