You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HttpClient自动解码编码URI致请求失败,如何保留%22编码值?

问题:HttpClient发送请求时自动解码URL编码的引号导致请求失败

HttpClient似乎不遵循URL编码规则。

var id = Uri.EscapeDataString("\"MyId\"");
var uri = new Uri($@"https://www.example.com/{id}").AbsoluteUri;
var req = new HttpRequestMessage(HttpMethod.Post, uri);

生成的uri为https://www.example.com/%22MyId%22,格式正确。查看req.RequestUri时,除LocalPath外其他属性均保留正确的%22编码引号。

发送请求:

await httpClient.SendAsync(req);

实际请求地址变为https://www.example.com/"MyId"(编码被解码),导致请求失败。

创建后uri.UserEscaped显示为false。尝试用已弃用的Uri.EscapeUriString转义整个URI,但官方建议使用Uri.EscapeDataString处理参数(已使用)。


尝试过相关解决方案(使用AbsoluteUri),但无效。部分同类问题描述不准确,实际请求确实包含解码后的值,而非仅ToString()方法显示问题,还有部分问题链接已失效。


如何发送保留%22编码引号的请求?

内容的提问来源于stack exchange,提问作者anon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 10:13:30