2016-07-28 20 views
3

Ich versuche, Bild in POST-Anfrage mit HttpURLConnection zu senden. Ich habe nächsten Code:Android HttpURLConnection POST Anfrage mit Bild/JPEG

String i3 = String.valueOf(System.currentTimeMillis()); 
ByteArrayOutputStream i4 = new ByteArrayOutputStream(); 
i4.write(("--" + i3 + System.lineSeparator() 
     + "Content-Disposition: form-data; name=\"" + I1.this.i2 + "\"; filename=\"" + I1.this.i2 + ".jpg\"" + System.lineSeparator() 
     + "Content-Type: image/jpeg" + System.lineSeparator() 
     + "Content-Length: " + String.valueOf(i2.this.i1.length) + System.lineSeparator() + System.lineSeparator()).getBytes()); 
i4.flush(); 
i4.write(i2.this.i1); 
i4.flush(); 
i4.write((System.lineSeparator() + System.lineSeparator() + "--" + i3 + "--").getBytes()); 
i4.flush(); 
i4.close(); 
HttpURLConnection i5 = (HttpURLConnection) new URL(myUrl).openConnection(); 
i5.setRequestMethod("POST"); 
i5.setDoOutput(true); 
i5.setRequestProperty("User-Agent", "Mozilla/5.0"); 
i5.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + i3); 
i5.setFixedLengthStreamingMode(i4.toByteArray().length); 
i5.connect(); 
OutputStream i6 = i5.getOutputStream(); 
i6.write(i4.toByteArray()); 
i6.flush(); 
i6.close(); 
System.out.println(i5.getResponseCode() + " " + i5.getResponseMessage()); 
i5.disconnect(); 

Aber wenn ich versuche, Antwortcode/Meldung von Verbindungsanwendung wirft mir eine Ausnahme zu erhalten:

07-28 12: 15: 00,722: java.io .IOException: unerwartetes Ende der Stream auf Verbindung {123.456.789.012:80, proxy = DIRECT @ HOSTADDRESS = 123.456.789.012 cipherSuite = none protocol = http/1.1} (recycle count = 0)

Vielleicht Problem ist meine Postanfrage schlecht oder syn Steuerfehler? Können Sie mir bitte helfen und sagen, was falsch ist?


Ich habe diesen Code auf Java-Anwendung auf Windows getestet! Das Ergebnis der Anfrage ist 200 OK. Fazit: Irgendwas stimmt nicht mit Android! Aber ich weiß immer noch nicht, was konkret ist.

Antwort

0

Ich fand die Lösung! Diese hässlichen Strings System.lineSeparator() müssen durch alte Art \r\n ersetzt werden! Groß.