news 2026/7/20 12:05:21

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/13 16:37:00

Keil5环境下C程序烧录全过程通俗解释

从C代码到芯片执行:Keil5烧录全过程拆解你有没有过这样的经历?在Keil5里写好一段点亮LED的C程序,点下“Download”按钮,看着状态栏跳过“Building target…”、“Programming Flash…”,然后灯亮了——可你心里却嘀咕&…

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

Open-AutoGLM到底有多强?10个真实应用场景告诉你答案

第一章:Open-AutoGLM到底有多强?10个真实应用场景告诉你答案Open-AutoGLM 作为新一代开源自动语言建模框架,凭借其强大的语义理解、任务自动化与多模态融合能力,正在重塑企业级 AI 应用的边界。它不仅支持零样本推理与低代码集成&…

作者头像 李华
网站建设 2026/7/15 1:55:05

1、Adobe Photoshop CS6:开启数字图像处理之旅

Adobe Photoshop CS6:开启数字图像处理之旅 在当今数字化的时代,数字图像处理变得越来越重要。Adobe Photoshop CS6 作为一款广受欢迎的软件,为用户提供了强大的功能来创建、修改、组合和优化数字图像。下面将为大家详细介绍这款软件的相关内容。 一、Photoshop 能做什么 …

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

东风、华为全新品牌“奕境”首台样车下线 2026年北京车展亮相

12月22日,由东风汽车与华为乾崑联合打造的全新汽车品牌“奕境”迎来首台工装样车下线。这也标志着,奕境品牌首款车型正式进入量产前的实质性验证阶段,将远赴零下50℃的黑龙江省漠河市开展极寒测试,全面验证车辆在极端环境下的可靠…

作者头像 李华
网站建设 2026/7/15 1:58:10

8、图像编辑工具使用指南

图像编辑工具使用指南 一、修复工具的使用 在图像编辑中,修复工具能帮助我们去除图像中的瑕疵,让图像更加完美。下面介绍几种常用的修复工具及其使用方法。 (一)污点修复画笔工具 操作步骤 : 点击污点修复画笔工具。 点击此处打开画笔菜单,指定画笔大小。若要修复的…

作者头像 李华
网站建设 2026/7/16 4:40:42

C++函数三大要素:定义、原型与调用完全指南

C函数三大要素&#xff1a;定义、原型与调用完全指南 函数使用三步骤 1. 函数定义&#xff1a;编写函数的具体实现 // 无返回值函数 (void函数) void cheers(int n) {for(int i 0; i < n; i)std::cout << "Cheers! ";std::cout << std::endl; }//…

作者头像 李华