c# - 为什么 System.Uri 会破坏我的网址?

标签 c# http

我有以下 C# 代码 Uri uri = new Uri("http://localhost/query?param=%E2%80%AE");uri 将其解释为 http://localhost/query?param= 而不是 http://localhost/query?param=%E2%80%AE。结果,http web 服务器得到 http://localhost/query?param=(没有这个参数的值)。为什么它会破坏我的 url 以及如何使用我的 http://localhost/query?param=%E2%80%AE 正确创建 HttpWebRequest

附言我使用 System.Uri.EscapeDataString(Convert.ToString((char)8238)) 获得了 %E2%80%AE

最佳答案

ToString() 将尝试将 uri 呈现为字符串。即,它将转义转义字符。但是,转义序列 %E2%80%AE 不可打印。

改用AbsoluteUri

var uriStr = uri.AbsoluteUri; // "http://localhost/query?param=%E2%80%AE"

关于c# - 为什么 System.Uri 会破坏我的网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26533279/

相关文章:

c# - 查询 refs 时如何排除存储?

c# - 准确的捏合缩放

java - 我们可以在 HTTP 401 响应代码上添加错误消息正文吗?我正在尝试获取它,但它是空白的,尽管它是从服务器设置的

c# - XML LINQ 查询不返回任何内容

c# - 如何在不使用按位运算符的情况下避免短路操作

c# - 我可以在某些情况下关闭模拟吗

http - 如何使用 HTTPie 发送 POST 请求?

javascript - 如何修复 Fetch API 中的 CORS 问题

file - HTTPS 协议(protocol)文件完整性

java - 通过 RESTful Web 服务编辑对象