Skip to content Skip to sidebar Skip to footer

301 Moved Permanently

I'm trying to get HTML by URL in Java. But 301 Moved Permanently is all that I've got. Another URLs work. What's wrong? This is my code: hh= new URL('http://hh.ru'); in =

Solution 1:

You're facing a redirect to other URL. It's quite normal and web site may have many reasons to redirect you. Just follow the redirect based on "Location" HTTP header like that:

URL hh= newURL("http://hh.ru");
URLConnectionconnection= hh.openConnection();
Stringredirect= connection.getHeaderField("Location");
if (redirect != null){
    connection = newURL(redirect).openConnection();
}
BufferedReaderin=newBufferedReader(newInputStreamReader(connection.getInputStream()));
String inputLine;
System.out.println();
while ((inputLine = in.readLine()) != null) {
    System.out.println(inputLine);
}

Your browser is following redirects automaticaly, but using URLConnection you should do it by your own. If it bothers you take a look at other Java HTTP client implementations, like Apache HTTP Client. Most of them are able to follow redirect automatically.

Solution 2:

found this answer useful and improved a little due to the possibility of multiple redirections (e.g. 307 then 301).

URLConnectionurlConnection= url.openConnection();
                Stringredirect= urlConnection.getHeaderField("Location");
                for (inti=0; i < MAX_REDIRECTS ; i++) {
                    if (redirect != null) {
                        urlConnection = newURL(redirect).openConnection();
                        redirect = urlConnection.getHeaderField("Location");
                    } else {
                        break;
                    }
                }

Solution 3:

There's nothing wrong with your code. The message means that hh.ru is permanently moved to another domain.

Solution 4:

I tested your code and it is ok, but when I use "hh.ru", the same problem as yours, and when I use lynx(command line browser) to connect to "hh.ru", it will show me that it is redirecting to another url and then show me that it is moved permanently and after that this alert: "Alert!: This client does not contain support for HTTPS URLs"

Solution 5:

Check if the URL provided is HTTP or HTTPS, consider adding protocol is you are using only domain name like http(s)://domainname.com/resource-name

Read: https://en.wikipedia.org/wiki/HTTP_301

Post a Comment for "301 Moved Permanently"