从需要Cookie的特定网址获取Java中的页面html

时间:2016-10-14 22:02:29

标签: java html cookies

我正在尝试获取

的html源代码
  

https://www.coinbet24.com/en/odds/football/algeria/ligue-1

总的来说,我做了很多次,从来没有遇到过问题,但这个特定的网站让我很难过。

无论我尝试什么,我都会得到一个人头稠密的回应,但这是一个空洞的身体。

它唯一有效的时间我实际得到了完整的响应,如果我手动将请求标头中的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();

感谢任何帮助。提前谢谢。

0 个答案:

没有答案