工具
/**
*
*/
package com.example.demo.utils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
* ClassName: contect_flask
* Function: TODO ADD FUNCTION
* @author: xuzheng
* date: 2019-7-1 下午2:03:00
*/
public class Contect_flask {
public static String get(String url){
String result = "";
HttpGet get = new HttpGet(url);
try{
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpResponse response = httpClient.execute(get);
result = getHttpEntityContent(response);
if(response.getStatusLine().getStatusCode()!=HttpStatus.SC_OK){
result = "服务器异常";
}
} catch (Exception e){
System.out.println("请求异常");
throw new RuntimeException(e);
} finally{
get.abort();
}
return result;
}
public static String getHttpEntityContent(HttpResponse response) throws UnsupportedOperationException, IOException{
String result = "";
HttpEntity entity = response.getEntity();
if(entity != null){
InputStream in = entity.getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(in, "utf-8"));
StringBuilder strber= new StringBuilder();
String line = null;
while((line = br.readLine())!=null){
strber.append(line+'\n');
}
br.close();
in.close();
result = strber.toString();
}
return result;
}
}
package com.example.demo.oa_web;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.example.demo.utils.Contect_flask;
import com.example.demo.utils.UtilsHTTP;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @Author: 乔元君
* @CreateTime: 2021-07-05 15:28
* @Description: TD
*/
@RestController
public class getInfo {
@GetMapping("/getinfo")
String gettoken(HttpServletRequest request , HttpServletResponse response){
//拿到code
String code = request.getParameter("code");
System.out.println(code);
//拿到token
String URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=xxxxxxx&secret=xxxxxxxx&code="+code+"&grant_type=authorization_code";
String result = Contect_flask.get(URL);
System.out.println(result);
String token = JSONObject.parseObject(result).getString("access_token");
String openid = JSONObject.parseObject(result).getString("openid");
//拿到用户信息
String getUserInfoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token="+token+"&openid="+openid+"&lang=zh_CN";
String userInfo =Contect_flask.get(getUserInfoUrl);
System.out.println(userInfo);
String nickname = JSONObject.parseObject(userInfo).getString("nickname");
return userInfo;
}
}
package com.example.demo.oa_web;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author: 乔元君
* @CreateTime: 2021-07-05 15:00
* @Description: TD
*/
@RestController
public class getNotes {
@PostMapping("/")
void get(HttpServletRequest request, HttpServletResponse response) throws IOException {
request.setCharacterEncoding("utf8");
response.setCharacterEncoding("utf8");
ServletInputStream inputStream = request.getInputStream();
Map<String ,String > map = new HashMap<>();
SAXReader reader =new SAXReader();
Document document= null;
try {
document = reader.read(inputStream);
Element root =document.getRootElement();
List<Element> elements = root.elements();
for (Element e :elements){
map.put(e.getName(),e.getStringValue());
}
} catch ( DocumentException e) {
e.printStackTrace();
}
System.out.println(map.toString());
System.out.println(map.get("Content"));
System.out.println(map.get("ToUserName"));
System.out.println(map.get("FromUserName"));
System.out.println(map.get("MsgType"));
System.out.println(map.get("MsgId"));
System.out.println("开始回复");
String url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxxxxx&redirect_uri=http://yx.frp.youngfan.top/getinfo&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
String notes ="点击<a href=\""+url+"\">这里</a>登陆";
String ResXML ="<xml>\n" +
" <ToUserName><![CDATA["+map.get("FromUserName")+"]]></ToUserName>\n" +
" <FromUserName><![CDATA["+map.get("ToUserName")+"]]></FromUserName>\n" +
" <CreateTime>"+System.currentTimeMillis()/1000+"</CreateTime>\n" +
" <MsgType><![CDATA[text]]></MsgType>\n" +
" <Content><![CDATA["+notes+"]]></Content>\n" +
"</xml>";
PrintWriter out =response.getWriter();
out.print(ResXML);
out.flush();
out.close();
}
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.72</version>
</dependency>
</dependencies>
完成