2016-11-08 75 views
9

我正在開發簡單的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核心要做到這一點

回答

4

下面是一個例子:

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; 
} 
9

的問題是關於HttpWebRequest,與HttpClient不同。
使用HttpWebRequest,你只要將你想要這樣的標題:

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

.NET核心將創建頭,如果它不存在。

+5

請不要添加標語到您的帖子。這些地方是在你的用戶檔案中。 – DavidPostill

相關問題