2016-11-08 3 views
9

Я разрабатываю простой клиент Http для использования API-интерфейса Asp.Net Core. Я хочу передать несколько значений заголовка http в веб-API через HttpHeaderCollection. В предыдущих версиях платформы .NET позволило добавить значения заголовка к HttpHeaderCollection следующимКак добавить значения заголовка в HttpWebRequest в .Net Core

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

Пожалуйста, не добавляйте taglines к своим сообщениям. Место для них указано в вашем профиле пользователя. – DavidPostill

Смежные вопросы