c# - 正确转义 URI 以在 HttpClient.PostAsync 中使用需要什么?

标签 c# http

HttpClient.PostAsync() 的大多数重载允许传入字符串或 URI。但是有些重载(在 Formatting 命名空间中) 只允许一个字符串。为了使用它,我构建并使用了一个 URI 字符串,例如:

string uri = "http://myserver.com/" + userSuppliedName + "/dosomething/";
client.PostAsync(uri, someObject, formatter);

我现在担心的是 userSuppliedName 可能是无效的或恶意的,所以我想确保它被正确转义。在 System.Uri 的文档中,它声明默认情况下传入的字符串将被正确转义,但由于我使用的 PostAsync 方法仅支持字符串 URI ,我想检查一下:它会自动正确转义吗?如果不是,我是否应该在构造 string uri 时转义 userSuppliedName

最佳答案

使用Uri.EscapeDataString()

string uri = "http://myserver.com/" + Uri.EscapeDataString(userSuppliedName) + "/dosomething/";
client.PostAsync(uri, someObject, formatter);

关于c# - 正确转义 URI 以在 HttpClient.PostAsync 中使用需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22498740/

相关文章:

c# - 如何从周数和工作日 C# 获取日期

c# - 串口问题

c# - 是否有一些库可以在其属性中创建带有虚拟数据的对象实例?

android - 如何向android模拟器发送http请求

java - 如何在一个 HTTP 响应中同时发送 ASCII 和二进制数据?

c++ - 使用 C++ Socket API 通过套接字连接将 HTML 标记发送到浏览器

c# - 如何在 C# 中的字符串的特定位置找到正则表达式匹配项?

javascript - MVC - 我的表单没有传递我的选择下拉列表的选定选项

wordpress - WordPress 主题和插件如何从远程服务器更新

html - 无方案 URL 在 HTTP 中有效吗?