相关疑难解决方法(0)

使用OKHTTP跟踪多部分文件上载的进度

我正在尝试实现一个进度条来指示多部分文件上载的进度.

我已经阅读了对这个答案的评论 - /sf/answers/1699994341/,我必须将传递给传递给RequestBody的接收器包装起来并提供跟踪移动的字节的回调.

我已经创建了一个自定义RequestBody并使用CustomSink类包装了接收器,但是通过调试我可以看到字节是由RealBufferedSink ln 44 编写的,而自定义接收器写入方法只运行一次,不允许我跟踪移动的字节数.

    private class CustomRequestBody extends RequestBody {

    MediaType contentType;
    byte[] content;

    private CustomRequestBody(final MediaType contentType, final byte[] content) {
        this.contentType = contentType;
        this.content = content;
    }

    @Override
    public MediaType contentType() {
        return contentType;
    }

    @Override
    public long contentLength() {
        return content.length;
    }

    @Override
    public void writeTo(BufferedSink sink) throws IOException {
        CustomSink customSink = new CustomSink(sink);
        customSink.write(content);

    }
}


private class CustomSink implements BufferedSink {

    private static final String TAG = "CUSTOM_SINK"; …
Run Code Online (Sandbox Code Playgroud)

android okhttp okio

35
推荐指数
2
解决办法
2万
查看次数

无法在okhttp:3.0.0-RC1中解析MultipartBuilder

我已经使用了okhttp,它可以正常使用以下依赖:

compile 'com.squareup.okhttp:okhttp:2.3.0'
Run Code Online (Sandbox Code Playgroud)

最近我更新了:

compile 'com.squareup.okhttp3:okhttp:3.0.0-RC1'
Run Code Online (Sandbox Code Playgroud)

它显示MultipartBuilder无法解决的错误.

我正在使用我的上传文件上传答案上传图片.

有没有办法实现相同的使用okhttp:3.0.0-RC1

android okhttp okhttp3

14
推荐指数
1
解决办法
6478
查看次数

Android okHttp addFormDataPart动态为多个图像

您好AndroidUploaders,

我已经给出了回答使用OkHttp在multipart中上传一个大文件,但我坚持使用多个图像上传.

我想一次动态上传1到10张图片.

RequestBody requestBody = new MultipartBuilder()
                    .type(MultipartBuilder.FORM)
                    .addFormDataPart(KEY_PHOTO_CAPTION, photoCaption)
                    .addFormDataPart(KEY_FILE, "profile.png", RequestBody.create(MEDIA_TYPE_PNG, sourceFile))
                    .build();
Run Code Online (Sandbox Code Playgroud)

ArrayListPhotoCaption具有类captionPhotourlPhoto那么,如何可以addFormDataPart()

我想循环并调用这个函数多次ArrayList大小.

addFormDataPart()是否有动态使用的解决方案?

java android multipart image-uploading okhttp

12
推荐指数
2
解决办法
1万
查看次数

使用okhttp上传文件

我正在完成这个使用okhttp与web服务进行通信的项目.

对于常规GET和POST,一切正常,但我无法正确上传文件.

okhttp文档非常缺乏这些主题,我在这里或任何地方找到的所有东西似乎都不适用于我的情况.

它应该很简单:我必须发送文件和一些字符串值.但我无法弄清楚如何做到这一点.

根据我发现的一些样本,我首先尝试了这个:

RequestBody requestBody = new MultipartBuilder().type(MultipartBuilder.FORM)
    .addFormDataPart("group", getGroup())
    .addFormDataPart("type", getType())
    .addFormDataPart("entity", Integer.toString(getEntity()))
    .addFormDataPart("reference", Integer.toString(getReference()))
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"task_file\""), RequestBody.create(MediaType.parse("image/png"), getFile()))
    .build();
Run Code Online (Sandbox Code Playgroud)

它给了我一个"400错误请求"错误.

所以我从okhttp食谱中尝试了这个:

RequestBody requestBody = new MultipartBuilder().type(MultipartBuilder.FORM)
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"group\""), RequestBody.create(null, getGroup()))
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"type\""), RequestBody.create(null, getType()))
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"entity\""), RequestBody.create(null, Integer.toString(getEntity())))
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"reference\""), RequestBody.create(null, Integer.toString(getReference())))
    .addPart(Headers.of("Content-Disposition", "form-data; name=\"task_file\""), RequestBody.create(MediaType.parse("image/png"), getFile()))
    .build();
Run Code Online (Sandbox Code Playgroud)

结果相同.

不知道还有什么可以尝试或调查这个调查.

请求使用以下代码完成:

// adds the required authentication token
Request request = new Request.Builder().url(getURL()).addHeader("X-Auth-Token", getUser().getToken().toString()).post(requestBody).build();
Response response = client.newCall(request).execute();
Run Code Online (Sandbox Code Playgroud)

但我很确定问题是如何构建请求体.

我究竟做错了什么?

编辑:顺便说一句,上面的"getFile()"返回一个File对象.其余参数都是字符串和整数.

java android okhttp

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

android ×4

okhttp ×4

java ×2

image-uploading ×1

multipart ×1

okhttp3 ×1

okio ×1