java-如何在HTTP响应正文中(通过Spark)发送QR码的PNG?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何在HTTP响应正文中(通过Spark)发送QR码的PNG?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1883字,纯文字阅读大概需要3分钟。
内容图文
![java-如何在HTTP响应正文中(通过Spark)发送QR码的PNG?](/upload/InfoBanner/zyjiaocheng/694/5be6699165054cf4acf2f36c7b636e95.jpg)
我想生成一个QR码图像,将其转换为PNG并将其作为HTTP响应返回给客户端.
为了生成QR码,我使用ZXing.我已经通过使用带有MatrixToImageWriter.writeToStream(…)的FileOutputStream进行编写来测试转换部分.就像魅力一样.
我当前使用的Web框架是Spark(版本1.1.1). handle(…)方法的返回值设置为响应主体.我在这里做错了什么?
使用当前解决方案,我得到图像“ http:// localhost:4567 / qrcode”无法显示,因为在Firefox中执行GET请求时它包含错误.
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import static spark.Spark.get;
import spark.Request;
import spark.Response;
import spark.Route;
import com.google.gson.Gson;
import com.google.common.io.BaseEncoding;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
public class App {
public static void main(String[] args) {
get(new Route("/qrcode") {
@Override
public Object handle(Request request, Response response) {
// Test data
QrData data = new QrData("test");
// Data is wrapped in JSON
String json = new Gson().toJson(data);
// Transform JSON to QR-code PNG byte string
String qrString = "";
try {
qrString = generatePngQrCode(json);
} catch (Exception e) {
e.printStackTrace();
}
// Set response parameters
response.type("image/png");
response.status(200);
// Return response body
return qrString;
}
});
}
public String generatePngQrCode(String content) throws Exception {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
// ZXing QR-code encoding
BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, 400, 400);
// Convert to PNG image and write to stream
MatrixToImageWriter.writeToStream(bitMatrix, "png", outputStream);
// Encode to Base 64
return BaseEncoding.base64().encode(outputStream.toByteArray());
}
}
解决方法:
使用response.getRaw获得应用于将PNG写入的OutputStream(使用MatrixToImageWriter).
内容总结
以上是互联网集市为您收集整理的java-如何在HTTP响应正文中(通过Spark)发送QR码的PNG?全部内容,希望文章能够帮你解决java-如何在HTTP响应正文中(通过Spark)发送QR码的PNG?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。