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
?
最佳答案
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/