小程序码后台无法解析
发布于 6 年前 作者 hluo 19427 次浏览 来自 问答
  1. 我在前端获取token传给后台,后台请求接口后返回的内容无法转换成图片,方法是网上找的,尝试过可以正常转换其他图片和二进制流,不知道问题出在哪了

@ResponseBody

@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.我在前端直接请求接口返回的是一堆乱码,能不能在前端直接解析成图片?

回到顶部