java - 从 Http 下载图像获取响应

标签 java rest


我正在使用 Postman 测试 api 链接,我的响应是如下所示的图像:

我写了一些像这样的http get代码来调用api:

HttpClient httpClient = HttpClientBuilder.create().build();

byte[] encodedBytes = Base64.getEncoder().encode("kermit:kermit".getBytes());       
HttpGet request = new HttpGet("http://127.0.0.1:8080/activiti-rest/service/runtime/process-instances/" +processInstanceId +"/diagram");
request.setHeader("Authorization", "Basic " + encodedBytes)

request.addHeader("content-type", "image/png");

HttpResponse response = httpClient.execute(request);

现在我想将该图像下载到硬盘中的特定路径。我在这里搜索了一些帖子,但这不是我预期的结果。 你能帮助我吗?谢谢!

最佳答案

首先,你不能将字节数组添加到字符串中:

request.setHeader("Authorization", "Basic " + encodedBytes);

你可以尝试这样的事情:

request.setHeader("Authorization", "Basic " + new String(encodedBytes, "UTF-8"));

您必须捕获或抛出UnsupportedEncodingException

其次,您不应设置 content-type header 。您可能想使用 Accept header 。

收到响应后,您可以将 OutputStream 的内容保存到文件中或对其执行任何您想要的操作。

关于java - 从 Http 下载图像获取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54758394/

相关文章:

Java DAO 实现测试

java - 如何使用 JAXB 解析 webflow

java - MultipartFile 问题,无法转换为文件

java - ReSTLet 框架。序列化。不明白如何发送和接收对象

java - 带有连接表的双向 @ManyToOne 创建重复键

javascript - 调用客户端重定向后 session 属性丢失

java - 硬币计数器中的镍币未显示正确的金额

java - 使用 POSTMAN 向 Java REST API 发送 POST 请求并在 xml 响应中获取空值

iphone - 让 Twitter、Tastypie、Django、XAuth 和 iOS 构建基于 Django 的访问权限

java - Spring 4 REST 程序使用 JAXB 返回 XML 列表