FriFra Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 Hallo zusammen, ich versuche gerade erfolglos eine Datei hoch zu laden... HTML-Form: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Rufnummern (Kurzwahl- und Telefonbuch)</title> </head> <body class="d3"> <form name="import_form" method="post" action="http://192.168.123.8/telefonbuch_kurzwahl?im_file=kurzwahlen&actionNo=12" accept-charset="ISO-8859-1" enctype="multipart/form-data"> <input type="file" name="im_file" size="70"> <input type=submit> </form> </body> </html> Mein Java-Code (fast 1:1 aus der Doku übernommen) sieht wie folgt aus: ... httpost = new HttpPost(sURL+"/telefonbuch_kurzwahl?im_file=kurzwahlen&actionNo=12"); FileBody bin = new FileBody(new File("d:/rufnummern.txt"),"text/plain"); MultipartEntity mpentity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); mpentity.addPart("im_file", bin); httpost.setEntity(mpentity); System.out.println("executing request " + httpost.getRequestLine()); System.out.println("DoPost"); response = httpclient.execute(httpost); System.out.println("Done!"); entity = response.getEntity(); is = entity.getContent(); System.out.println("----------------------------------------"); System.out.println(response.getStatusLine()); if (entity != null) { System.out.println("CHK: "+convertStream2String(is)); System.out.println("Response content length: " + entity.getContentLength()); System.out.println("Chunked?: " + entity.isChunked()); } if (entity != null) { entity.consumeContent(); } ... ich bekomme zwar als Status 200 OK... aber der "Upload" geht viel zu schnell und die Daten kommen auch nicht an. Der Zielserver meldet: "Fehler 12002: - falsche Boundary Key" Was mache ich falsch? Zitieren
kingofbrain Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 Zeig doch mal die Stelle, wo die Daten angenommen werden (Server), Deine zwei Codeausschnitte zeigen einmal ein Formular, mit dem man eine Datei hochladen kann, und einmal einen Codeausschnitt, in dem mit dem HTTPClient etwas hochgeladen wird. Oder habe ich was übersehen (ist ja noch früh )? Schöne Grüße, Peter Zitieren
FriFra Geschrieben 27. Mai 2010 Autor Geschrieben 27. Mai 2010 Zeig doch mal die Stelle, wo die Daten angenommen werden (Server) Das kann ich nicht, weil es sich um den Webserver auf einer Telefonanlage handelt und der ist Closed-Source Deine zwei Codeausschnitte zeigen einmal ein Formular, mit dem man eine Datei hochladen kann, und einmal einen Codeausschnitt, in dem mit dem HTTPClient etwas hochgeladen wird. Genauso ist es! Ich versuche mit dem HttpClient (Java-Code Ausschnitt) das Verhalten des HTML-Form (HTML-Code Ausschnitt) nachzubilden... leider liefert mit der HttpClient ein vollkommen anderes Ergebnis, wie das simple HTML-Form und genau das ist mein Problem. Bis auf das Hochladen hab ich schon alle Aufgaben gelöst: Login, alte Rufnummern löschen, {hier müssten jetzt die neuen Rufnummern übertragen werden} und Logout. Ist also nur noch eine "Kleinigkeit", aber da komme ich momentan nicht weiter ... Zitieren
kingofbrain Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 Ah ok, die Information, dass es mit dem Formular funktioniert, mit dem HTTPClient nicht, hat mir gefehlt. Sorry, da kann ich Dir nicht weiterhelfen, da ich mit dem HTTPClient noch keinen Multipart-Request versandt habe. Schöne Grüße, Peter Zitieren
Schiller256 Geschrieben 27. Mai 2010 Geschrieben 27. Mai 2010 Hast du das HTML Formular auch selbst erstellt oder ist das etwas was die Telefonanlage mit ausliefert? Denn was ich mir Vorstellen kann ist das beim HTTP Request über den Browser eventuell noch zusätzliche Parameter mit übergeben werden oder Daten aus einem Cookie geladen werden. Diese müsstest du dann auch noch in deinen Request den du über Java versendest hinzufügen. Du solltest mal beide Request's also den via Browser und den aus deinem Java Client mitschneiden und dann vergleichen. Solltest du mit eclipse als IDE arbeiten kannst du auch mal den TCP/IP Monitor dazwischen hängen da siehst du eventuell ob überhaupt Daten aus deinem Client versendet werden. Zitieren
FriFra Geschrieben 27. Mai 2010 Autor Geschrieben 27. Mai 2010 Das formular ist eine vereinfachte Version dessen, was auf der Anlage liegt, aber es funktioniert. Ich habs getestet, damit kommt die Datei dort an, wo sie hin gehört Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.