HTTP请求标头自定义值不会转到服务器C#

时间:2017-05-31 18:10:41

标签: c# http httpwebrequest

我正在为我的请求添加自定义标头。我调试代码时可以看到它。但是得到一个错误,它从服务器中丢失了。

HttpWebRequest request;
request = GenerateRequest("https://at.test.com/test/api/test/v1/TestApplications HTTP/1.1", content, "application/json", "POST");

request.Headers.Add("Custom-Signature", signature);
return GetResponseContent(request);

这就是我添加标题的方式。

1 个答案:

答案 0 :(得分:0)

很久以前这个问题。使用Web api 2.0时遇到了同样的问题,我的解决方案是使用Request.Content.Headers而不是Request.Headers

然后我宣布了如下的抗议

  /// <summary>
    /// Returns an individual HTTP Header value
    /// </summary>
    /// <param name="headers"></param>
    /// <param name="key"></param>
    /// <returns></returns>
    public static string GetHeader(this HttpContentHeaders headers, string key, string defaultValue)
    {
        IEnumerable<string> keys = null;
        if (!headers.TryGetValues(key, out keys))
            return defaultValue;

        return keys.First();
    }

然后我通过这种方式调用它。

  var headerValue = Request.Content.Headers.GetHeader("custom-header-key", "default-value");

我希望这会有所帮助