【问题标题】:Prevent HTTP Request Headers from trimming防止 HTTP 请求标头修剪
【发布时间】:2016-11-14 09:41:55
【问题描述】:

我有一个允许用户下载文件的 RESTFul Web 服务。用户将发送一个带有几个 HTTP 请求头的请求,以指定要下载的文件。

但是,我发现http请求头会被自动修剪,例如如果用户发送头值 - “a”,最后有一个空格,它将被修剪,因此值变成“a” .如何防止值被修剪?

下面是我的代码是检索每个标头值:

string filename = context.IncomingRequest.Headers["filename"];

context 指的是WebOperationContext

【问题讨论】:

    标签: c# .net visual-studio http-headers httprequest


    【解决方案1】:

    您为什么不直接阅读原始请求并提取您需要的内容?

    Request.InputStream.Position = 0;
    var input = new StreamReader(Request.InputStream).ReadToEnd();
    

    【讨论】:

      【解决方案2】:

      根据 rfc2616 specification(HTTP 1.1 - 第 31 页)

      "前导或尾随 LWS 可能是 删除而不改变字段值的语义。”

      不幸的是,我不知道有哪些 http 软件不这样做。比如看这条评论->cURL

      【讨论】:

        猜你喜欢
        • 2020-06-30
        • 2011-03-22
        • 1970-01-01
        • 1970-01-01
        • 2017-10-07
        • 2015-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多