2016-05-27 9 views
1

i diesen Code verwenden POST HTTP-Anfrage zu senden:Java Http Umleitung

String url1 = "URL1"; 
String url2 = "URL2"; 
URL obj = new URL(url1); 
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); 
this.setHeader(con,urlParameters.length()); 
// Send post request 
con.setDoOutput(true); 
DataOutputStream wr = new DataOutputStream(con.getOutputStream()); 
wr.writeBytes(urlParameters); 
wr.flush(); 
wr.close(); 

Wie kann ich eine Umleitung auf URL2 tun, wenn URL1 nach unten ist?

+1

[Dies] (http://www.mkyong.com/java/java-httpurlconnection-follow-redirect-example/) ist ganz vollständig Ressource Behandlung der Situation, die Sie erwähnt. –

Antwort

0

obj.openConnection() sollte eine Ausnahme auslösen, wenn die Verbindung nicht hergestellt werden kann. Ich nehme an, dass Sie diese Ausnahme auslösen. Stattdessen können Sie es fangen und es erneut versuchen. Bitte beachten Sie, dass das Schreiben und Lesen der Verbindung auch Ausnahmen auslösen kann. Denken Sie darüber nach, wie jeder von ihnen (versuchen Sie es erneut, oder werfen der Anrufer umgehen das Problem zu lassen) zu handhaben

URL obj; 
HttpsURLConnection con = null; 
try 
{ 
    obj = new URL(url1); 
    con = (HttpsURLConnection) obj.openConnection(); 
} 
catch(Exception e) 
{ 
    System.out.println("Error, redirecting to url 2"); 
    e.printStackTrace(); 

    try 
    { 
     obj = new URL(url2); 
     con = (HttpsURLConnection) obj.openConnection(); 
    } 
    catch(Exception e) 
    { 
     System.out.println("Error, url2 failed"); 
     throw e; // This will make your function throw an exception when both urls are down. 
    } 
} 
+0

Sollte entweder der Versuch auf url2 in den ersten catch-Block setzen oder ihn mit einem if (con == null) -Block umgeben. – user3745362

0

Versuchen Sie diesen Code zu schreiben und zu Umgestalten es Ihrem Bedarf. post data in java console application

URL serverUrl = 
      new URL("http://localhost:1611/POST/othersite.aspx"); 
    HttpURLConnection urlConnection = (HttpURLConnection)serverUrl.openConnection(); 
    urlConnection.setDoOutput(true); 
    urlConnection.setRequestMethod("POST"); 
    Boolean isUrl1Down=false; 
    try { 
     BufferedWriter httpRequestBodyWriter = new BufferedWriter(new OutputStreamWriter(urlConnection.getOutputStream())); 
     httpRequestBodyWriter.write("userName=Johnny+Jacobs&password=1234"); 
     httpRequestBodyWriter.close(); 
    }catch (IOException ie){ 
     isUrl1Down=true; 
    } 
    if(isUrl1Down){ 
     System.out.println("Try with secound URL"); 
    } 
    // Reading from the HTTP response body 
    Scanner httpResponseScanner = new Scanner(urlConnection.getInputStream()); 
    while(httpResponseScanner.hasNextLine()) { 
     System.out.println(httpResponseScanner.nextLine()); 
    } 
    httpResponseScanner.close();