2016-09-03 2 views
1

Ich entwickle einen Code für ein Projekt, wo ein Teil des Codes ist, um eine Liste von URLs (Website) zu überprüfen ist live und und bestätigen Sie es.Neue URL erhalten, wenn dauerhaft verschoben

Bis jetzt funktioniert alles wie geplant, erwarten einige Seiten, die dauerhaft mit Fehler 301 in Bezug auf diese list verschoben werden. Im Falle des Fehlers 301 muss ich die neue URL-Information erhalten und sie in einer Methode übergeben, bevor ich den Wert true zurückgebe.

Das folgende Beispiel wird nur bewegen zu https aber auch andere Beispiele auf eine andere URL bewegt werden konnte, so dass, wenn Sie diese Website aufrufen:

http://en.wikipedia.org/wiki/HTTP_301 

es

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

was in Ordnung ist, Ich brauche nur die neue Url.

Ist das möglich und wie?

Das ist mein Arbeitscodeteil so weit:

boolean isUrlOk(String urlInput) { 
    HttpURLConnection connection = null; 
    try { 
     URL url = new URL(urlInput); 
     connection = (HttpURLConnection) url.openConnection(); 
     connection.setRequestMethod("GET"); 
     connection.connect(); 
     urlStatusCode = connection.getResponseCode(); 

    } catch (IOException e) { 
     // other error types to be reported 
     e.printStackTrace(); 
    } 
    if (urlStatusCode == 200) { 
     return true; 
    } else if (urlStatusCode == 301) { 
     // call a method with the correct url name 
     // before returning true 
     return true; 
    } 
    return false; 
} 
+0

Sie möchten echte Fehler statt Schlucken, die Ausnahmebehandlung erhalten, so dass Ihre Programm stürzt nach einer Ausnahme nicht ab. – Robert

+0

@Robert thx Kumpel, ich weiß, ich bin noch nicht in diesem Stadium. – masterpeter2720

Antwort

3

Sie können die neue URL erhalten mit

String newUrl = connection.getHeaderField("Location"); 
+2

das funktioniert super danke. Ich werde es in Kürze überprüfen – masterpeter2720

Verwandte Themen