【问题标题】:Preserve special characters when parsing variables from http request to c# string将变量从 http 请求解析为 c# 字符串时保留特殊字符
【发布时间】:2018-07-13 11:42:07
【问题描述】:

我正在开发一个基于 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 对文档变量进行编码,但它也会对合法空格进行编码。

【问题讨论】:

    标签: c# http request owin


    【解决方案1】:

    同时我有一个解决方法: this.Request.RequestUri.OriginalString GET 方法内部将完整链接作为字符串给出,没有任何解释。剩下的就是用string.substring操作获取相关变量了。

    不过它想知道是否有人知道更优雅的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-16
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      • 2019-10-08
      • 2011-04-11
      相关资源
      最近更新 更多