[英]Preserve special characters when parsing variables from http request to c# string
我正在基于owin和katana的小型应用程序内部处理链接。 因此,应用程序处理HttpGet请求。 当有人打电话时
http:localhost /?document = path / to / my / document / foo.doc
应用程序将打开此文档。
我的问题是:当文档名称包含特殊字符(如“ +”)时,由于变量被解析为字符串,因此我的代码将+号解释为空格。
[HttpGet]
[Route("")]
public HttpResponseMessage Get(string document = "")
{
//open document
}
那么如何在执行任何代码之前保留特殊字符并且不允许c#字符串转换它们呢?
我尝试使用HttpResponseMessage Get([FromUri]string document = "")
之后,我尝试使用HttpUtility.UrlEncode对文档变量进行编码,但它也会对合法空间进行编码。
同时,我得到了一种解决方法:GET方法内部的this.Request.RequestUri.OriginalString将完整的链接作为字符串给出,而没有任何解释。 剩下的就是通过string.substring操作获取相关的变量。
不过,它想知道是否有人知道更优雅的解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.