/**
* GET请求获取图片 或者其他文件
*
* @param url
* @param headers
* @return
*
*/
public static byte[] doGetImg(String url, Map<String, String> headers) {
CloseableHttpClient httpclient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(TIME_OUT).setConnectTimeout(TIME_OUT)
.build();
HttpGet httpGet = new HttpGet(url);
if (headers != null) {
for (String key : headers.keySet()) {
httpGet.addHeader(key, headers.get(key));
}
}
httpGet.setConfig(requestConfig);
try {
CloseableHttpResponse response = httpclient.execute(httpGet);
HttpEntity entity = response.getEntity();
// 如果状态码不是200,返回空,表示失败
int htttpStatusCode = response.getStatusLine().getStatusCode();
if (200 != htttpStatusCode) {
LOG.error("get img fail : url={} , headers={} , entity={} , https状态码={}", url, headers,
EntityUtils.toString(entity), htttpStatusCode);
return null;
}
// 图片最大20M
final long maxSize = 20 * 1024 * 1024;
ByteArrayOutputStream os = new ByteArrayOutputStream();
if (entity != null) {
InputStream stream = entity.getContent();
int i;
while ((i = stream.read()) != -1) {
os.write(i);
}
os.flush();
}
return os.toByteArray();
} catch (Exception e) {
LOG.error("url={}", url, e);
} finally {
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
httpclient下载图片或者其他文件
最新推荐文章于 2020-05-06 09:10:50 发布