使用OKhttp在Android中的multipart中上传单个大文件(更具体地说,到s3)有什么选择?
如何在OkHttp 3中跟踪上传的进度我可以找到v2但不是v3的答案,就像这样
来自OkHttp配方的示例Multipart请求
private static final String IMGUR_CLIENT_ID = "...";
private static final MediaType MEDIA_TYPE_PNG = MediaType.parse("image/png");
private final OkHttpClient client = new OkHttpClient();
public void run() throws Exception {
// Use the imgur image upload API as documented at https://api.imgur.com/endpoints/image
RequestBody requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("title", "Square Logo")
.addFormDataPart("image", "logo-square.png",
RequestBody.create(MEDIA_TYPE_PNG, new File("website/static/logo-square.png")))
.build();
Request request = new Request.Builder()
.header("Authorization", "Client-ID " + IMGUR_CLIENT_ID)
.url("https://api.imgur.com/3/image")
.post(requestBody)
.build();
Response response = client.newCall(request).execute();
if (!response.isSuccessful()) throw new IOException("Unexpected code …Run Code Online (Sandbox Code Playgroud) 如何添加进度条以百分比显示下载进度?我的图像文件位于远程服务器上,并且足够占用大约30秒的时间。我需要通知用户有关下载的百分比。
我正在尝试使用OkHttp跟踪上传的进度.我创建了一个RequestBody带有以下主体的自定义(由此答案提供),它写入接收器并发布进度.
public class CountingFileRequestBody extends RequestBody {
private static final String TAG = "CountingFileRequestBody";
private final ProgressListener listener;
private final String key;
private final MultipartBody multipartBody;
protected CountingSink mCountingSink;
public CountingFileRequestBody(MultipartBody multipartBody,
String key,
ProgressListener listener) {
this.multipartBody = multipartBody;
this.listener = listener;
this.key = key;
}
@Override
public long contentLength() throws IOException {
return multipartBody.contentLength();
}
@Override
public MediaType contentType() {
return multipartBody.contentType();
}
@Override
public void writeTo(BufferedSink sink) throws IOException {
mCountingSink = new …Run Code Online (Sandbox Code Playgroud) 我正在开发一个上载大量数据的应用程序。我想确定上传的传输速率,以显示在通知中。
我对这些帖子中的答案不满意,因此我再次询问。
我看过显示上传传输速率的应用程序,以及一些自定义ROM,例如Resurrection Remix。
如何确定这些上传的传输速率?