下面是我调用获取设备中存储图片的接口,记录一下这两个的使用情况
1.设置连接超时时间
如customReqConf.setConnectTimeout(5000)设置请求超时时间为5秒,
public static byte[] httpGet(String url, Boolean setTimeout, CloseableHttpClient httpClient) {
RequestConfig.Builder customReqConf = RequestConfig.custom();
CloseableHttpResponse response = null;
HttpGet httpGet = new HttpGet(url);
try {
customReqConf.setConnectTimeout(100000);
customReqConf.setSocketTimeout(200000);
if (setTimeout) {
customReqConf.setConnectTimeout(5000);
customReqConf.setSocketTimeout(10000);
}
httpGet.setConfig(customReqConf.build());
try {
response = httpClient.execute(httpGet);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode != SUCCESS_RESPONSE_CODE) {
LogUtils.logError(ErrorCode.ERR_ERROR, "get picture error, response code: " + statusCode);
}
HttpEntity entity = response.getEntity();
if (entity == null) {
LogUtils.logError(ErrorCode.ERR_ERROR, "get picture error, response null");
}
byte[] bytes = EntityUtils.toByteArray(entity);
return bytes;
} catch (Exception e) {
LogUtils.logError(ErrorCode.ERR_ERROR, "get picture error, httpClient excute error");
return null;
} finally {
if (response != null) {
response.close();
}
}
} catch (ClientProtocolException e) {
LogUtils.logError(ErrorCode.ERR_ERROR, e.getMessage());
} catch (IOException e) {
LogUtils.logError(ErrorCode.ERR_ERROR, e.getMessage());
}
return null;
}
2.设置响应超时时间
如customReqConf.setSocketTimeout(10000);设置响应超时时间为10秒
3.具体设置多少合适情况根据实际使用情况判断