【C#】HTTP中URL编码方式解析

前言:当调用HTTP请求时,通常有get和post两种方式

类型 位置 内容格式 常见用途 示例
Query 参数 URL 里(? 后) key=value&key=value 标识性参数(如分页、过滤条件) GET /api/user?id=1
Form-data 请求体中 多段分隔(MIME multipart) 上传文件、图片、混合数据 Content-Type: multipart/form-data
Urlencoded 请求体中 key=value&key=value 表单提交(纯文本字段) Content-Type: application/x-www-form-urlencoded
Raw JSON 请求体中 JSON 字符串 现代 API 请求(REST) Content-Type: application/json

在传参的时候,有些参数可能带一些特殊字符,比如&,"等等,因此需要编码。

编码方式如下:

方法名 所属命名空间 编码标准 常见用途 是否限制长度 特点
Uri.EscapeDataString() System RFC 3986 用于单个参数值 ✅ 有(约 32,766) 严格编码规则,推荐用于 query
Uri.EscapeUriString() System RFC 3986 用于整条 URL ✅ 有 不会转义 /?#
HttpUtility.UrlEncode() System.Web HTML 表单标准 表单、查询字符串 ⚠️ 无显式限制 ASP.NET 中最常用
WebUtility.UrlEncode() System.Net HTML 表单标准 通用 URL 编码 ⚠️ 无显式限制 .NET 4.0+,轻量级
HttpUtility.HtmlEncode() System.Web HTML 实体 防止 XSS 攻击 ❌ 无限制 用于网页显示
Uri.UnescapeDataString() System RFC 3986 解码 ✅ 有 EscapeDataString 对应
HttpUtility.UrlDecode() System.Web HTML 表单标准 解码 ❌ 无限制 UrlEncode() 配对

其中HttpUtility.UrlEncode() 主要用于参数编码,需要有对应的解码;Uri.EscapeDataString()也是用于参数编码,但是可以不解码,因为大部分服务器端框架(包括 ASP.NET、Web API、MVC)在接收请求时,会自动为你解码 URL 参数。

完结撒花~

相关推荐
DICOM医学影像1 分钟前
2. go语言从零实现以太坊客户端-查询区块链账户余额
开发语言·golang·区块链·以太坊·web3.0·hardhat
Data_agent12 分钟前
Python 编程实战:函数与模块化编程及内置模块探索
开发语言·python
new_zhou12 分钟前
vs2019+qt工程中生成dump文件及调试
开发语言·qt·visual studio·dump调试
栈与堆37 分钟前
LeetCode 19 - 删除链表的倒数第N个节点
java·开发语言·数据结构·python·算法·leetcode·链表
一路向北·重庆分伦39 分钟前
03-01:MQ常见问题梳理
java·开发语言
txinyu的博客43 分钟前
结合游戏场景理解,互斥锁,读写锁,自旋锁,CAS / 原子变量,分段锁
开发语言·c++·游戏
hugerat1 小时前
在AI的帮助下,用C++构造微型http server
linux·c++·人工智能·http·嵌入式·嵌入式linux
阿里嘎多学长1 小时前
2026-01-11 GitHub 热点项目精选
开发语言·程序员·github·代码托管
yuanyikangkang1 小时前
STM32 lin控制盒
开发语言