构造联图接口url
private String getQRCodeUrl(String text, String logoUrl, int size) {
StringBuilder sb = new StringBuilder("http://qr.liantu.com/api.php?text=");
sb.append(text);
sb.append("&logo=").append(logoUrl);// logo
sb.append("&w=").append(size);// 尺寸
// sb.append("&bg=").append(""); // 背景颜色, 格式 :颜色代码 如fffaf0
// sb.append("&fg=").append("");// 前景颜色,即条纹颜色 同上
// sb.append("&gc=").append("");// 渐变颜色, 同上
// sb.append("&pg=").append("");// 定位点颜色(外框) 同上
// sb.append("&inpt=").append("");// 定位点颜色(内点) 同上
// sb.append("&el=").append("");// 纠错等级, 可用值:h\q\m\l 格式 : 单个字符 如 h
// sb.append("&m=").append("");// 外边距尺寸
return sb.toString();
}
使用resttemplate请求图片并发送给浏览器
@RequestMapping("/downloadQRCode")
@ControllerLogExeTime(description="下载二维码", log=false)
public void downloadQRCode(HttpServletResponse response) throws IOException {
RestTemplate restTemplate = new RestTemplate();
logger.info("调用生成站点二维码功能, url: {}", QRCODE_PREFIX);
String url = getQRCodeUrl(QRCODE_PREFIX, QRCODE_LOGOURL, QRCODE_SIZE);
ResponseEntity<byte[]> resp = restTemplate.getForEntity(url, byte[].class);
response.setContentType("image/png;charset=UTF-8");
response.addHeader("Content-Disposition", "attachment;filename=qrcode.png");
OutputStream out = response.getOutputStream();
out.write(resp.getBody());
out.flush();
out.close();
}
本文介绍了一个用于生成二维码的联图接口URL构造方法,通过拼接文本、Logo地址和尺寸等参数,实现定制化的二维码生成。此外,还展示了如何使用Spring框架的RestController注解,配合RestTemplate发送GET请求获取二维码图片,并将其作为响应返回给浏览器。
6275

被折叠的 条评论
为什么被折叠?



