我正在寻找一个网址,我可以上传一个没有令牌,授权等文件。我不能通过谷歌搜索找到它
基本上我需要一个网址,我可以在多部分表单数据中POST
请求并获得基本响应,例如OK
,我需要这个来计算上传所需的时间
我需要它,因为:
我正在开发Android应用并使用OkHttp
进行文件上传,代码如下所示:
OkHttpClient client = new OkHttpClient.Builder().connectTimeout(150, TimeUnit.SECONDS).readTimeout(150, TimeUnit.SECONDS).build();
Multipart.Builder builder = new Multipart.Builder()
.type(Multipart.Type.PARALLEL)
.addPart(new Part.Builder()
.body(getSettings().getToken().getSessionId())
.contentDisposition("form-data; name=\"" + ParametersStrings.ACCESS_TOKEN + "\"")
.build())
.addPart(new Part.Builder()
.body(KEY_JSON_RPC_VALUE)
.contentDisposition("form-data; name=\"" + KEY_JSON_RPC + "\"")
.build())
.addPart(new Part.Builder()
.body(String.valueOf(sAutoIncrementId++))
.contentDisposition("form-data; name=\"" + KEY_ID + "\"")
.build())
.addPart(new Part.Builder()
.body(file)
.contentDisposition("form-data; name=\"" + ParametersStrings.FILE + "\"; filename=\"" + file.getName() + "\"")
.build());
Multipart multipart = builder.build();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
multipart.writeBodyTo(stream);
RequestBody body = RequestBody.create(MediaType.parse(multipart.getHeaders().get("Content-Type")), stream.toByteArray());
Request request = new Request.Builder()
.url(getUploadUri())
.post(body).build();
Response response = client.newCall(request).execute();
在能够100MBit / S的WIFI连接中,将11MB文件上传到服务器的时间需要12秒
我也使用了纯粹的HttpClient和时间相同的
我开始猜测它可能与服务器有关,所以我试图找到另一个,如果你有任何建议改进当前的代码以加快它,我会很乐意接受它。 / p>
问题1: Android上的OkHttp和纯HttpClient如何工作得如此之慢(上传11MB文件到服务器的时间在WIFI连接中需要12秒才能达到100MBit / S)我如何加快上面写的代码
问题2:是否有虚拟服务器,我只需上传多部分表单数据,并获得简单的响应?
问题3:如果有人熟悉使用OkHttp
按部件上传文件,请帮助解决问题