simon perera
simon perera

Reputation: 121

How to add Header values to HttpWebRequest in .Net Core

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

Answers (2)

Mark Malo
Mark Malo

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

Fabricio Koch
Fabricio Koch

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

Related Questions