【问题标题】:java.net.ProtocolException: expected * bytes but received * #4302java.net.ProtocolException: 预期 * 字节但收到 * #4302
【发布时间】:2018-10-04 04:47:16
【问题描述】:
@post()
@multipart
Call<FileUploadResult[]> upload File(@nonnull @part MultipartBody.Part... files);


MultipartBody.Part body = MultipartBody.Part.createFormData("file","Timesheet-" + 
new Date().getTime() + FileUtils.IMAGE_EXT,
RequestBody.create(
MediaType.parse(URLConnection.guessContentTypeFromName(file.getName())), file));

ServiceBuilder.getService().uploadFile(body).enqueue(syncCallback);

我在使用MultipartBody.Part 上传图像时遇到了这个错误,它抛出了那个异常。下面是代码:java.net.ProtocolException: expected * bytes but received *

作为一个有同样问题的人,它在 HEADER 和 BODY 之间的内容长度错误,但我不这么认为,因为我在调用 API 时没有修改任何东西,而且它不会一直发生

【问题讨论】:

    标签: android


    【解决方案1】:

    我发现问题是在保存照片时,他们使用另一个线程来保存图像,有时没有足够的时间将图像保存到 sdcard -> 当将图像推送到服务器时,图像的大小不够 -> 被捕获那个例外

    【讨论】:

    • 你是怎么解决的?
    • @A.easazadeh :在我的情况下,“将图像保存到 sd 卡”和“更正图像方向...”在后台工作,当用户调用 API 上传文件时,文件已保存但尚未成为最终文件。因此文件的长度(内容长度)与使用“更正图像方向...”修改的文件不同。我的解决方案只是触发一些广播或回调bla bla 知道修改何时完成或只显示对话框,以便用户无法执行上传图片的操作
    猜你喜欢
    • 2017-12-04
    • 1970-01-01
    • 2018-01-17
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2018-11-26
    相关资源
    最近更新 更多