我正在使用 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/