news 2026/7/6 9:38:27

Application/x-www-form-urlencoded 风格如何解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Application/x-www-form-urlencoded 风格如何解析

一句话:把「看上去像 query string」的报文,用标准库 net/url 或 ParseQuery 拆成 map[string]string,再按 key 取值即可。
下面给出 Go 代码模板,可直接嵌到你的 notifyHandler 里。
import (
"io"
"net/http"
"net/url"
"strings"
)

func notifyHandler(w http.ResponseWriter, r *http.Request) {
// 1. 读取原始 body(后面还要验签,必须拿原始字节)
bodyBytes, _ := io.ReadAll(r.Body)
raw := string(bodyBytes)

// 2. 解析成 map
vals, err := url.ParseQuery(raw)
if err != nil {
http.Error(w, "parse error", http.StatusBadRequest)
return
}
// 如果想转 map[string]string
params := make(map[string]string)
for k, v := vals {
if len(v) > 0 {
params[k] = v[0]
}
}

// 3. 取字段
transStat := params["trans_stat"]
reqSeqID := params["req_seq_id"]
transAmt := params["trans_amt"]
sign := params["sign"]

// 4. 验签(略,用 SDK 或自己 rsa.VerifyPKCS1v15)
// ok := utils.VerifySign(raw, sign, huifuPubKey)

// 5. 业务幂等处理
// ...

// 6. 返回 success
w.Write([]byte("success"))
}

要点
1. 一定要先读原始 body 再 ParseQuery,否则验签会失败。
2. url.ParseQuery 会把 + 当成空格,符合标准;如果前端误把空格 encode 成 %20 也能正常解析。
3. 参数名大小写敏感,汇付返回全小写。
4. 如果只想快速拿单个值,也可以 r.ParseForm() 然后 r.FormValue("trans_stat"),但同样会消耗 body,验签前千万别用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 9:43:36

Unlock Music音乐解密终极教程:彻底摆脱平台枷锁

Unlock Music音乐解密终极教程:彻底摆脱平台枷锁 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://gi…

作者头像 李华
网站建设 2026/7/2 0:13:15

163MusicLyrics:免费歌词获取神器,网易云QQ音乐一键搞定

163MusicLyrics:免费歌词获取神器,网易云QQ音乐一键搞定 【免费下载链接】163MusicLyrics Windows 云音乐歌词获取【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为找不到精准歌词而烦恼?…

作者头像 李华
网站建设 2026/7/2 0:14:49

快速理解原理图与PCB之间的网表关联机制

深入理解原理图与PCB之间的网表联动机制:从设计到落地的“神经传导”系统你有没有遇到过这种情况:在PCB上布线时,突然发现某个关键信号没连上?飞线明明该有的地方却空着,查了半天才发现是原理图里一个网络标签拼错了。…

作者头像 李华
网站建设 2026/7/5 0:58:14

11、Photoshop 图层操作全攻略

Photoshop 图层操作全攻略 在 Photoshop 中,图层是进行图像编辑和设计的重要工具。合理运用图层可以让我们更加灵活地处理图像,实现各种复杂的效果。下面将详细介绍 Photoshop 中常见的图层操作。 1. 重命名图层 在创建或复制图层后,Photoshop 通常会赋予它们通用的名称,…

作者头像 李华
网站建设 2026/6/25 11:40:12

MapleMono字体符号显示问题的终极解决方案与快速修复指南

MapleMono字体符号显示问题的终极解决方案与快速修复指南 【免费下载链接】maple-font Maple Mono: Open source monospace font with round corner, ligatures and Nerd-Font for IDE and command line. 带连字和控制台图标的圆角等宽字体,中英文宽度完美2:1 项目…

作者头像 李华
网站建设 2026/6/25 13:10:52

BiliBiliCCSubtitle:高效下载B站视频字幕的完整指南

BiliBiliCCSubtitle:高效下载B站视频字幕的完整指南 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 还在为无法保存B站精彩视频的字幕而烦恼吗&#x…

作者头像 李华