使用go resty库访问wx.jscode2session接口
本文最后更新于 528 天前,其中的信息可能已经有所发展或是发生改变。

之前用django写小程序后端,请求微信接口获取openid时用的都是py的requests库。现在改用go写后端,自然要找功能相似的库来用。

resty是一个go编写的网络请求库。但与偏重于爬虫的requests在功能上有些许差别。下面直接贴代码

type wxJsonRes struct {
	Openid     string `json:"openid"`
	SessionKey string `json:"session_key"`
	UnionId    string `json:"unionid"`
	Errcode    int    `json:"errcode"`
	Errmsg     string `json:"errmsg"`
}
res1 := &wxJsonRes{}
	client := resty.New()
	_, err := client.R().ForceContentType("application/json").
		SetQueryParams(map[string]string{
			"js_code":    reqBody["code"],
			"secret":     conf.AppSecret,
			"appid":      conf.AppId,
			"grant_type": "authorization_code",
		}).SetResult(res1).Get("https://api.weixin.qq.com/sns/jscode2session")
	if err != nil {
		response.ErrorResp(c, err, 500)
		return
	}
	//fmt.Printf("%+v\n", res1)
	if res1.Errcode != 0 {
		response.ErrorStrResp(c, "服务端获取openid失败", 500)
		return
	}

值得注意的是,虽然resty会自动识别响应格式并解析数据到结构体,但这里如果不设置ForceContentType(“application/json”),请求完成后并不能正确解析数据(大坑)

顺便提一下打印结构体的方法。fmt.Printf("%+v\n", something)

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇