如何创建 HttpRequestHeaders 类的实例

Posted

技术标签:

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

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

    public HeaderValueProvider(HttpRequestHeaders headers)
    
        _headers = headers;
    

【问题讨论】:

【参考方案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;

【讨论】:

以上是关于如何创建 HttpRequestHeaders 类的实例的主要内容,如果未能解决你的问题,请参考以下文章

为什么HttpRequestHeaders.GetValues(string)返回的IEnumerable只有1个字符串?

HostOnly Cookie和HttpOnly Cookie

1如何声明一个类?如何创建类的对象?

Java如何创建一个类?

c#如何创建类 调用

C#如何使用VS2005自动创建实体类?