Android图片上传:破管

时间:2018-03-01 21:18:14

标签: java android retrofit2 okhttp3 image-upload

我将图像(一次一个)从Android应用程序(使用retrofit2和okhttp3)上传到springboot服务器。我使用base64将图像文件转换为字符串。我在手机上拍摄了一张图片,但是对于任何其他图片都不起作用。

Android代码:

try {
     Bitmap bm = BitmapFactory.decodeFile(imageLocation);
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
     bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);
     byte[] b = baos.toByteArray();
     String base64Image = Base64.encodeToString(b, Base64.DEFAULT);
     baos.flush();
     baos.close();
     Log.d(TAG, base64Image);
     beconnect.uploadPhoto(base64Image, "imagename");
} catch (FileNotFoundException e) {
     System.out.println("Image not found" + e);
} catch (IOException ioe) {
     System.out.println("Exception while reading the Image " + ioe);
}

@POST("/uploadImage")
@FormUrlEncoded
<Observable<retrofit2.Response<String>> uploadPhoto(@Field("image") String image, @Field("name") String name);//@Part("desc") RequestBody desc, @Part MultipartBody.Part image);

这是有效图像的原始帖子... POST http://192.168.1.11:8080/uploadImage http / 1.1(393608字节正文)

这是失败的帖子...... POST http://192.168.1.11:8080/uploadImage http / 1.1(11115982-byte body)

错误:

  

HTTP FAILED:java.net.SocketException:断开管道   okhttp3.internal.http1.Http1Codec $ FixedLengthSink.write(Http1Codec.java:286)at at   okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:63)   ....

我知道两个图像之间的字节大小不同......这是问题的原因,我该如何解决?

0 个答案:

没有答案