欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > 小程序生成带参二维码(JAVA)

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:738

高端HTML5响应式企业通用网

2020-05-06   浏览:520

html5响应式外贸网站英文版

2020-05-08   浏览:509

HTML5自适应律师工作室类网

2020-04-04   浏览:502

HTML5影视传媒文化公司类网

2020-05-12   浏览:497

小程序生成带参二维码(JAVA)

发布时间:2020-11-28  

作者:lay2016,来自原文地址

在使用小程序提供的API: createwxaqrcode的时候,后台获取的返回值是一些像乱码的东西。 
其实这些东西是二维码的数据流,而且是没有经过base64加密过的。 
所以不需要经过base64解密。 
直接将数据流保存为JPG或者PNG图片就可以了。 
但是怎么保存呢? 
我这里提供一下项目中的Java代码:

 

/**

* 获取二维码请求

* @param request

* @param url

* @param params

* @return 返回二维码地址

*/

public static String getQRCode(HttpServletRequest request, String url, String params){

System.out.println("地址:" + url);

System.out.println("参数:" + params);

 

HttpClient client = new DefaultHttpClient();

HttpPost post = new HttpPost(url);

 

post.setHeader("Content-Type", "application/json");

post.addHeader("Authorization", "Basic YWRtaW46");

String result = "";

 

try {

 

StringEntity s = new StringEntity(params, "utf-8");

s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,

"application/json"));

post.setEntity(s);

 

// 发送请求

HttpResponse httpResponse = client.execute(post);

 

// 获取响应输入流

InputStream inStream = httpResponse.getEntity().getContent();

String savePath = request.getSession().getServletContext().getRealPath("upload/code");

String fileName = new GuidUtils().newGuid();

String fileExt = ".jpg";

// 如果没有该路径,那么创建一个

File file = new File(savePath);

if (!file.exists()){

file.mkdirs();

}

saveImgInStream(inStream, savePath, fileName, fileExt);

result = "/upload/code/" + fileName + fileExt;

} catch (Exception e) {

System.out.println("请求异常");

throw new RuntimeException(e);

}

return result;

}

 

/**

* 将输入流保存为图片

* @param stream 输入流

* @param savePath 存储路径

* @param fileName 文件名

* @param fileExt 格式

* @throws Exception

*/

public static void saveImgInStream(InputStream stream, String savePath, String fileName, String fileExt) throws Exception{

// 将输入流保存为图片

byte[] data = new byte[1024];

int len = 0;

FileOutputStream fileOutputStream = null;

String path = savePath + "\\" + fileName + fileExt;

fileOutputStream = new FileOutputStream(path);

while ((len = stream.read(data)) != -1) {

fileOutputStream.write(data, 0, len);

}

// 关闭流

fileOutputStream.close();

}

省略了不少代码,仅供参考

本文标签

:备案管家服务帮您把复杂流程变简单,解决您在进行网站备案过程中遇到的效率低下和成功率不高的问题。个人300/2个域名,企业500/5个域名,qq1650004.