301永久移动

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.他们中的大多数都能够自动跟踪重定向.