我在前端获取token传给后台,后台请求接口后返回的内容无法转换成图片,方法是网上找的,尝试过可以正常转换其他图片和二进制流,不知道问题出在哪了
@RequestMapping("/qrTest")
public Map qrTest(Long hotelId, String appId, String token) {
RestTemplate rest = new RestTemplate();
InputStream inputStream = null;
OutputStream outputStream = null;
try {
String url = “https://api.weixin.qq.com/wxa/getwxacode?access_token=” + token;
Map<String, Object> param = new HashMap<>();
param.put(“page”, “pages/home/home”);
param.put(“width”, 430);
param.put(“auto_color”, false);
Map<String, Object> line_color = new HashMap<>();
line_color.put(“r”, 0);
line_color.put(“g”, 0);
line_color.put(“b”, 0);
param.put(“line_color”, line_color);
System.out.println(“调用生成微信URL接口传参:” + param);
// MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity requestEntity = new HttpEntity(param, headers);
ResponseEntity<byte[]> entity = rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
System.out.println(“调用小程序生成微信永久小程序码URL接口返回结果:” + entity.getBody());
byte[] result = entity.getBody();
System.out.println("\r\nold:" + Base64.encodeBase64String(result));
inputStream = new ByteArrayInputStream(result);
File file = new File(“f:/abc.jpg”);
if (!file.exists()) {
file.createNewFile();
}
outputStream = new FileOutputStream(file);
int len = 0;
byte[] buf = new byte[1024];
while ((len = inputStream.read(buf, 0, 1024)) != -1) {
outputStream.write(buf, 0, len);
}
outputStream.flush();
} catch (Exception e) {
System.out.println(“调用小程序生成微信永久小程序码URL接口异常”);
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
2.我在前端直接请求接口返回的是一堆乱码,能不能在前端直接解析成图片?