java调用微信小程序服务器API获取小程序码
目录
一、实现思路
1.登录微信https://mp.weixin.qq.com获取小程序AppID和AppSecret;
2.根据小程序AppID和AppSecret获取accesstoken
3.调用小程序码API接口:
接口地址:https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=ACCESS_TOKEN
并添加post请求参数
4.请求成功,会直接返回图片二进制内容
5.对返回的数据进行处理,把返回的图片 Buffer转换成图片并存入服务器,然后返回服务器图片地址信息
二、java 获取小程序码工具类代码实现
1.创建Spring boot项目,添加httpclient、web依赖
<!--HttpClient:只能以编程的方式通过其API用于传输和接受HTTP消息-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<!--alibaba json工具类-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.配置静态资源访问
2.1 在application.properties文件中配置静态资源路径
#设置项目ContextPath 项目访问前缀
server.context-path=/
#设置Tomcat编码
server.tomcat.uri-encoding=UTF-8
#设置视图解析器路径
spring.mvc.view.prefix=/WEB-INF/views/
#设置视图解析器后缀
spring.mvc.view.suffix=.jsp
#静态资源路径
web.upload-path=D:/mimi/
spring.mvc.static-path-pattern=/**
spring.web.resources.static-locations=classpath\:/META-INF/resources/,classpath\:/resources/,classpath\:/static/,classpath\:/public/,file\:${
web.upload-path}
2.2 配置静态资源映射路径
创建配置类继承WebMvcConfigurationSupport ,重写addResourceHandlers方法实现静态资源映射路径
package com.example.qrdemo.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
/**
* @author qzz
*/
@Configuration
public class WebMvcConfigurer extends WebMvcConfigurationSupport {
/**
* 添加静态资源映射路径,css、js等都放在classpath下的static中
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
/**
* addResourceHandler 指的是对外暴露的访问路径
* addResourceLocations 指的是文件配置的目录
*/
//文件上传路径映射
registry.addResourceHandler("/mimi/upload/**")
.addResourceLocations("file:D:/mimi/upload/");
super.addResourceHandlers(registry);
}
}
3.代码实现获取小程序二维码
小程序二维码的生成需要几个工具类:
3.1 判断字符串为空、不为空工具类
package com.example.qrdemo.util;
/**
* @author qzz
*/
public class Tool {
/**
* 检测字符串是否为空(null,"","null")
* @param s
* @return 为空返回true,否则返回false
*/
public static boolean isEmpty(String s){
return s == null || "".equals(s) || "null".equals(s);
}
/**
* 检测字符串是否不为空(null,"","null")
* @param s
* @return 不为空返回true,否则返回false
*/
public static boolean notEmpty(String s){
return s != null && !"".equals(s) && !"null".equals(s);
}
}
3.2 HttpRequest 请求封装类:get\post请求
package com.example.qrdemo.util;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.