Reputation: 121
I am developing simple Http client to consume an Asp.Net Core Web API. I want to pass few http header values to the Web API via HttpHeaderCollection. In previous versions of .Net framework allowed to add header values to the HttpHeaderCollection as following
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();
But in .Net Core there is no way to add headers to request.Headers collection. As well as we cannot add headers by defining new WebHeaderCollection
WebHeaderCollection aPIHeaderValues = new WebHeaderCollection();
Is there any alternative way to do this in .Net Core
Upvotes: 12
Views: 22274
Reputation: 121
The question is about HttpWebRequest
, which is different than HttpClient
.
Using HttpWebRequest
, you simply assign to a header you want like this:
request.Headers["HeaderToken"] = "HeaderValue";
.NET core will create the header if it does not exist.
Upvotes: 12
Reputation: 1435
Here is an example:
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;
}
Upvotes: 4