使用Apache httpclient将图像加载到BufferedImage中

问题描述 投票:0回答:1

我有以下代码使用Apache HttpClient检索页面

CredentialsProvider provider = new BasicCredentialsProvider();
UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("user", "password");
provider.setCredentials(AuthScope.ANY, credentials);

HttpClient client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();

HttpResponse response = client.execute(new HttpGet(imageUrl));
int statusCode = response.getStatusLine().getStatusCode();

System.out.println(statusCode);

HttpEntity entity = response.getEntity();
String entityContents = EntityUtils.toString(entity);

我正在加载的URL是JPG的直接链接。如何将图像直接加载到BufferedImage而不是获取字符串?

apache-httpclient-4.x
1个回答
0
投票

这是经过测试的代码

CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpGet request = new HttpGet("http://www.example.com/photo.jpg");
request.addHeader("content-type", "image/jpeg");
HttpResponse response = httpClient.execute(request);

HttpEntity entity = response.getEntity();
BufferedImage img = ImageIO.read(entity.getContent());
© www.soinside.com 2019 - 2024. All rights reserved.