今天做一个上传功能,一个200M的文件上传需要9分钟,设置了50秒的timeout一直不生效

 

RequestConfig resConf = RequestConfig.custom().setConnectTimeout(50000).setSocketTimeout(50000).setConnectionRequestTimeout(50000).build();
        return HttpClientBuilder.create().setDefaultRequestConfig(resConf).build();

直接设置httppost的timeout也不起作用:

 

 

HttpParams params = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(params, 50*1000);
            HttpConnectionParams.setSoTimeout(params, 50*1000);
            httpPost.setParams(params);

 

 

 

 

 

原因:

connectionRequestTimeout是获取连接池连接的超时时间

connectionTimeout是建立连接的超时时间,

socketTimeout是等待服务器响应的超时时间

而上传文件是请求数据到服务器的时间,目前没有发现可以设置请求数据传送的超时时间。

 

 

以上

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐