如何将标头值添加到.Net核心中的HttpWebRequest

问题描述:

我正在开发简单的Http客户端以使用Asp.Net Core Web API。我想通过HttpHeaderCollection将少量的http头值传递给Web API。 .NET Framework中的早期版本中允许标头值添加到HttpHeaderCollection如下如何将标头值添加到.Net核心中的HttpWebRequest

WebHeaderCollection aPIHeaderValues = new WebHeaderCollection();   
aPIHeaderValues .Add("UserName","somevalue"); 
aPIHeaderValues .Add("TokenValue", "somevalue"); 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
request.Headers.add(aPIHeaderValues); 
HttpWebResponse response = (HttpWebResponse)_request.GetResponse(); 

但对.NET核心是没有办法添加头request.Headers集合。除了我们无法通过定义新WebHeaderCollection

WebHeaderCollection aPIHeaderValues = new WebHeaderCollection(); 

添加页眉是否有任何替代方式对.NET核心要做到这一点

下面是一个例子:

SampleClass sampleClass= null; 
using (HttpClient client = new HttpClient()){ 
    client.DefaultRequestHeaders.Add("Authorization", "TOKEN"); 
    var data = await client.GetAsync("MY_API_URL"); 
    var jsonResponse = await data.Content.ReadAsStringAsync(); 
    if (jsonResponse != null) 
     sampleClass= JsonConvert.DeserializeObject<SampleClass>(jsonResponse); 
    return sampleClass; 
} 

的问题是关于HttpWebRequest,与HttpClient不同。
使用HttpWebRequest,你只要将你想要这样的标题:

request.Headers["HeaderToken"] = "HeaderValue"; 

.NET核心将创建头,如果它不存在。

+5

请不要添加标语到您的帖子。这些地方是在你的用户档案中。 – DavidPostill