c# - 反斜杠在 WebGet 中未被识别为参数
问题描述
代码:
[OperationContract]
[WebGet(UriTemplate = "ProgrammerData/Document/{*documentName}")]
string ProgrammerDataDocument(string documentName);
称呼:
图片文字:localhost/RedactedPath/ProgrammerData/Document/%5C%5Cxundas
结果
public string ProgrammerDataDocument(string documentName)
{
// value of documentName at this point is "xundas"
string a = "";
return a;
}
我编码但没有出现在我的参数中的反斜杠。
我需要这个,因为我将网络路径从客户端发送到服务器
解决方案
起初,当我们将反斜杠传递给服务器时,浏览器不支持反斜杠。任何反斜杠都将转换为正斜杠。因此这是不可能实现的。
此外,参数前面的正斜杠和反斜杠均不被识别(尚未加密),但参数中间的斜杠被识别并自动转换为反斜杠。最后,当返回结果时,Url 支持正斜杠。请考虑以下代码。
[OperationContract]
[WebGet(UriTemplate ="abc/{*value}")]
string GetData(string value);
public string GetData(string value)
{
var result = System.Net.WebUtility.UrlDecode(value);
result = result.Replace("/", @"\\");
return result;
}
结果。
关于 UriTemplate。https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/uritemplate-and-uritemplatetable?redirectedfrom=MSDN
如果有什么我可以帮忙的,请随时告诉我。
推荐阅读
- sql - SQL | 斯卡拉 | 乔克 | 表包含 Array[Long] 和 Long | 从具有 Long 行的数组中获取一对值
- java - 如何使用 RestEasy 实现 HTTP PATCH 调用
- python - 在哪种情况下会使用另一个矩阵而不是单位矩阵来查找特征值?
- php - 如何正确地将数据添加到数组中
- c++ - 挂起的线程时间
- reactjs - React useState not rendering with objects
- internationalization - i18next-http-middleware - 如何使用异步 LanguageDetector 并访问请求对象?
- angular - Angular 12 迁移到 iONIC 15 滚动问题
- rust - 使用依赖项的依赖项?
- python - 如何在 SQLITE3 Python 中制作食谱中的成分列表