Ton*_*ony 3 html java http http-status-code-301
我正在尝试通过Java在URL中获取HTML.但301 Moved Permanently就是我所拥有的一切.另一个URL工作.怎么了?这是我的代码:
hh= new URL("http://hh.ru");
in = new BufferedReader(
new InputStreamReader(hh.openStream()));
while ((inputLine = in.readLine()) != null) {
sb.append(inputLine).append("\n");
str=sb.toString();//returns 301
}
Run Code Online (Sandbox Code Playgroud)
Jk1*_*Jk1 13
您正面临重定向到其他网址的问题.这很正常,网站可能有很多理由重定向你.只需遵循基于"位置"HTTP标头的重定向,如下所示:
URL hh= new URL("http://hh.ru");
URLConnection connection = hh.openConnection();
String redirect = connection.getHeaderField("Location");
if (redirect != null){
connection = new URL(redirect).openConnection();
}
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
System.out.println();
while ((inputLine = in.readLine()) != null) {
System.out.println(inputLine);
}
Run Code Online (Sandbox Code Playgroud)
您的浏览器会自动跟踪重定向,但使用URLConnection时,您应该自行完成.如果遇到困难,请查看其他Java HTTP客户端实现,例如Apache HTTP Client.他们中的大多数都能够自动跟踪重定向.