我试图在改造中使用自定义网址上传文件。
以下是我发出请求的方式:
RequestBody fileBody = RequestBody.create(MediaType.parse(artifactHeaders.getContentType()), file);
这是界面:
@PUT
Call<ResponseBody> uploadArtifactToAmazon2(@Url String artifactUrl,
@Header("Content-Disposition") String contentDisposition,
@Header("x-amz-server-side-encryption") String xAmzServerSideEncryption,
@Header("x-amz-security-token") String xAmzSecurityToken,
@Header("Content-Type") String contentType,
@Body RequestBody requestBody);
但是我在日志中得到了这个:
06-21 10:41:16.354 4760-4808/
D/OkHttp: 4�IDATx�<�g�dYv��������j7��cvf�c�5XR����!�06-21 10:41:16.354 4760-4808/D/OkHttp: E�R($�B����"()��D��.�avfz�{zf�Ww�̪J��|/��"������|ޖ�9�?9���Ȧʰ��uv���V���
06-21 10:41:16.504 4760-4808/D/OkHttp: �R>a1�~�`.�>����IOhQS�a�B>��=h0
[- - - HUNDREDS OF THESE LINES CONTINUE ]
06-21 10:41:16.567 4760-4808/D/OkHttp: Content-Type: image/png
06-21 10:41:16.567 4760-4808/D/OkHttp: Content-Length: 669719
几秒钟后,日志给了我这个:
06-21 10:41:16.626 4760-4808/D/!!!: Cookie Name: __cfduid Cookie Value: df052a1723cd06647966e629e113d4a461466515894 Expiry: Wed, 21-Jun-2017 14:41:14 GMT+00:00
06-21 10:41:28.040 4760-4808/D/!!!: Cookie Name: __cfduid Cookie Value: df052a1723cd06647966e629e113d4a461466515894 Expiry: Wed, 21-Jun-2017 14:41:26 GMT+00:00
06-21 10:41:39.014 4760-4760/D/!!!: Failure Code: timeout
我收回图片了吗?怎么了?
答案 0 :(得分:0)
终于解决了这个问题。事实证明,Retrofit默认为10秒。超时(见详情here)。
这会在改装中断或停止上传。
我在日志中看到的字符(我正在使用HttpLoggingInterceptor.Level.BODY)。解决方案是设置超时持续时间:
httpClient.readTimeout(10, TimeUnit.MINUTES)
.connectTimeout(10, TimeUnit.MINUTES)
我的下一个任务是确定文件上传所需的时间,并使用它来设置超时持续时间或正确处理超时事件。