我定义了以下 Web 服务接口(WCF 服务)方法:
[WebInvoke(Method = "POST", UriTemplate = "sites/{siteId}/storage/{*filePath}", BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
FileUploadResultDto UploadMultipart(Stream fileData, string siteId, string filePath);
如果我向以下位置发出 HTTP POST 请求:“(host)/sites/1234/storage/%D0%BC%D0%B0%D0%BC%D0%B0.html”(这是“мама”的 URL 编码版本.html")
参数filePath读作“мама.html”,这是错误的。
我希望它直接读作“мама.html”。
然而,“м” 是“м”字符的 html 编码版本。
为什么 WCF/UriTemplate 会这样?我怎样才能直接获得字符串的直接表示,而不是对某些字符进行 html 编码?web.config 中是否有此设置?它是一个错误吗?