2016-07-28 26 views
3

HttpURLConnectionでPOSTリクエストで画像を送信しようとしています。Android HttpURLConnection POSTリクエスト画像/ jpeg

7月28日12:15:00.722:

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(); 

しかし、私は、接続アプリケーションの応答コード/メッセージを取得しようとしている私に例外をスロー:java.io私は次のコードを持っています.IOException: 接続{123.456.789.012:80、プロキシ= DIRECT @ HOSTADDRESS = 123.456.789.012 のCipherSuite =なしプロトコル= HTTP/1.1}(リサイクルカウント= 0)たぶん

問題にストリームの予期しない終了私の投稿要求が悪いか、syn税務上のエラー?あなたは私を助けて何が間違っていると言うことができますか?


このコードをWindowsのJavaアプリケーションでテストしました。要求の結果は200 OKです。結論:アンドロイドに何か間違っている!しかし、私はまだ具体的に何がわかりません。

答えて

0

私は解決策を見つけました!この醜い紐System.lineSeparator()は、旧種類\r\nに置き換える必要があります!すばらしいです。

関連する問題