JBossサーバーからアンドロイドにファイルのリスト(私の場合はイメージ)をアップロードします。 は、私は以下の書かれたコードでそうやって:アンドロイド側でokaportを使用して、resteasyからandroidに送信されたマルチパート応答を読み取るにはどうすればよいですか?
@GET
@Path("/report/{filename}")
@Produces({MediaType.MULTIPART_FORM_DATA})
public MultipartFormDataOutput getReport(@PathParam("filename") String filename, @Context HttpServletRequest request) {
try {
String token = request.getHeader("Authorization");
List<File> file = processImage.getImage(filename,token);
MultipartFormDataOutput output = new MultipartFormDataOutput();
for(File image: file){
System.out.println("class of this" +image + "MMMM" +image.exists());
output.addPart(image, new MediaType("image","jpg"));
}
return output;
} .....
.......
}
私は、応答(マルチパート形式のファイル)を読みたいです。私は接続を行うためにokHttpを使用しています。 インターネットでたくさんの検索を行っています。マルチパートレスポンスを読むために以下のコードを試しましたが、うまくいきません。ストリームから何も読んでいないようです。
ByteArrayDataSource ds = new ByteArrayDataSource(response.body().byteStream(), "multipart/form-data");
MimeMultipart multipart = new MimeMultipart(ds);
BodyPart jsonPart = multipart.getBodyPart(0);
System.out.println("Response body = " + jsonPart.getInputStream());
File reportFile = new File(Environment.getExternalStorageDirectory() + File.separator + "downloadedFile.jpg");
InputStream is = jsonPart.getInputStream();
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(reportFile);
byte[] buffer = new byte[MEGABYTE];
int bufferLength = 0;
while ((bufferLength = is.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, bufferLength);
}
is.close();
fileOutputStream.close();
.......
}
誰でもこの問題を解決できますか?私は2日からここで立ち往生しています。私は間違って何をしています。
は、あなたがこのライン出力を表示することができますするSystem.out.println( "レスポンスボディ=" + jsonPart.getInputStream()); –
http://www.coderzheaven.com/2011/08/16/how-to-upload-multiple-files-in-one-request-along-with-other-string-parameters-in-android/またはhttp: //stackoverflow.com/questions/32984323/upload-multiple-image-file-using-httpurlconnection –
これを試してくださいhttp://stackoverflow.com/questions/35622676/image-upload-using-okhttp/35622812#35622812 –