2012-12-13 32 views
4

我想将标题添加到HttpRequestMessage。问题是HttpRequestHeaders没有构造函数,HttpHeaders是抽象的,...。 有什么办法,我们可以在我们的代码的地方使用这些类(我可以用一个List<Tuple<string, List<string>>但并不好看的话)如何将标题添加到httprequest消息

回答

18

的HttpRequestMessage已经HttpRequestHeaders的一个实例,你不能改变它。您可以添加标题是这样的:

message.Headers.Add("X-Hello", "world"); 
+0

是的,这是我在我的内部做的功能,但我的功能签名看起来awfull。我有类似于公共静态字符串Get(Uri url,Dictionary >标头) – Dave

+0

为什么不只是一个Dictionary 标头? –

+0

是的,我可以做到这一点(我曾经在一个网站上放了两次相同的密钥)。此外,在净HttpHeaders的定义是'公共抽象类HttpHeaders:IEnumerable的 >>, \t IEnumerable' – Dave

5

您可以通过以下方式之一获得HttpHeaders一个空的实例:

var headers = new HttpClient().DefaultRequestHeaders; 
var headers = new HttpResponseMessage().Headers; 
var headers = new HttpRequestMessage().Headers; 

你也可以将你自己的类,它扩展HttpHeaders和使用该。