# Http Client mit Redirect Enabled



## guni (7. Apr 2009)

Hallo Leute, 

ich muss über Java-Code ein Webformular ausfüllen.
mein Code ist vom Prinzip her so aufgebaut ...
[highlight=Java]
        public static void main(String[] args) throws IOException {
        URL server = new URL(
            "https://employeeapp-288.umantis.com/Public/Import/New");
        HttpURLConnection conn = (HttpURLConnection)server.openConnection();
        OutputStreamWriter wr = new OutputStreamWriter(
                conn.getOutputStream());
        // hier stehen die Post Daten in folgender (Beispiel)Form:
        //  wr.write(URLEncoder.encode("form_save", "UTF-8") + "=" + URLEncoder.encode("true", "UTF-8"));
        wr.close();
        conn.disconnect();
    }
[/highlight]
1. habe ich in unterschiedlichen Forn gelesen, dass ich eine MalformedURLException bekomme, wenn ich nicht irgendwelche speziellen Klassen einbinde, die https unter der HttpURLConnection unterstützen.
Ich habe diese Klassen nicht eingebunden; bekomme aber auch den Fehler nicht, Woran kann das liegen?

2. der eigentliche Fehler den ich bekomme ist ein HTTP-500 Error. 
Es handelt sich um ein Formular zum Upload von XML-Dateien.
Solange ich die XML-Datei nicht mitschicke und nur die restlichen Felder befülle, kann ich mein Request zum Server schicken; sobald ich die Datei mitzuschicken versuche, bekomme ich einen Fehler. ich versuche die Datei so zu verschicken:
[highlight=Java]wr.write("&" + URLEncoder.encode("form_data4", "UTF-8") + "=");
        String line;
        BufferedReader in = new BufferedReader(new FileReader("lesalaire_export.xml"));
        while ( (line = in.readLine()) != null ) {
            wr.write(line);
        }[/highlight]

habe ich den Upload falsch aufgebaut?


3. ich habe in Perl denselben Client schonmal geschrieben. Dort musste ich die URLConnection wie folgt definieren:

[highlight=Perl]
   $ua = LWP::UserAgent->new(
      agent                   => 'lsalInterface/1.0',
      from                    => 'sgunacker',
      requests_redirectable   => ['GET', 'HEAD', 'POST']
   );[/highlight]

ohne den Requests-Redirectable hat das nicht funktioniert. Vermutlich ist HttpURLConnection.setFollowRedirects(true);
in Java die Alternative. Aber auch damit funktioniert es nicht! Ich wei0 nicht mehr weiter. Kann mir irgendjemand in diesem Punkt helfen?

danke,
guni


----------



## guni (8. Apr 2009)

weiß da irgendwer weiter?
bitte!


----------



## HoaX (8. Apr 2009)

Ich würde einfach den HTTPClient von Apache verwenden:

HttpClient - HttpClient Home


----------

