【问题标题】:How can I create instance of HttpRequestHeaders class如何创建 HttpRequestHeaders 类的实例
【发布时间】:2016-05-30 20:07:47
【问题描述】:

我必须对使用 HttpRequestHeaders 作为参数的类进行单元测试。

    public HeaderValueProvider(HttpRequestHeaders headers)
    {
        _headers = headers;
    }

【问题讨论】:

    标签: asp.net-web-api2


    【解决方案1】:

    HttpRequestHeaders 只有内部构造函数。 但是你可以通过创建HttpRequestMesssage 对象来做到这一点:

    using var headers = new HttpRequestMessage().Headers;
    

    【讨论】:

    • 谢谢。不创建成熟的HttpClient 的解决方案感觉要好得多。请注意,HttpRequestMessage 是一次性的,因此您可能希望将其放置在 using 块中。
    • @Timo,你是对的。使用 c# 8.0,您可以编写:using var headers = new HttpRequestMessage().Headers;
    • 这看起来真的会处理标题而不是HttpRequestMessage。你绝对确定这符合你的意图吗?也许有一些我不知道的魔法......
    • 蒂莫你是对的。应该是:C# using var message = new HttpRequestMessage(); var headers = message.Headers;
    【解决方案2】:

    您可以通过以下方式获得HttpRequestHeaders 的空白实例:

    var headers = new HttpClient().DefaultRequestHeaders;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-28
      相关资源
      最近更新 更多