用于文件上传的虚拟服务器,OkHttp速度问题

时间:2016-03-10 09:12:39

标签: android api server multipartform-data okhttp

我正在寻找一个网址,我可以上传一个没有令牌,授权等文件。我不能通过谷歌搜索找到它

基本上我需要一个网址,我可以在多部分表单数据中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按部件上传文件,请帮助解决问题

0 个答案:

没有答案