通过微信网页授权机制,来获取用户基本信息

微信网页授权

参考微信开放文档
1.第一步:用户同意授权,获取code:
通过微信客户端发送示例连接获取code:https://open.weixin.qq.com/connect/oauth2/authorize?appid=------&redirect_uri=
https://waltonleewx.mynatapp.cc/------/oauth2&response_type=code&scope=snsapi_userinfo#wechat_redirect
授权作用域(scope参数)拥有snsapi_userinfo
在这里插入图片描述
点击连接,就会出现授权页面
在这里插入图片描述
同样,我们也可以通过web开发者工具获取code
在这里插入图片描述
用户同意授权后
如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE
可以看到已经获取到了code值: code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期
在这里插入图片描述
2.第二步:通过code换取网页授权access_token
获取code后,通过链接获取access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
在这里插入图片描述
使用工具类发送get和post请求
在这里插入图片描述
3.第三步:拉取用户信息(需scope为 snsapi_userinfo)
在这里插入图片描述
使用工具类发送get和post请求
在这里插入图片描述
获取到用户信息
在这里插入图片描述
到这里通过微信网页授权机制,来获取用户基本信息即完成了,
下面分享一个Java发送get和post请求工具类给大家:转载至熊猫小灰:简单Http发送get和post请求工具类

import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

import java.io.*;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @author liangyehui
 * @version v1.0
 * @create 2018/7/10
 **/
public class HttpClientUtil {
   


    /**
     * get请求,参数拼接在地址上,即http://test.com?a=1&b=2
     *
     * @param url 请求地址加参数
     * @return 响应
     */
    public static String get(String url) {
   
        String result = null;
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpGet get = new HttpGet(url);
        CloseableHttpResponse response = null;
        try {
   
            response = httpClient.execute(get);
            if (response != null && response.getStatusLine()<
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值