asp.net core - route - Cómo agregar valores de encabezado a HttpWebRequest en.Net Core
forms asp net core (2)
Estoy desarrollando un cliente Http simple para consumir una Asp.Net Core Web API. Quiero pasar algunos valores de encabezado http a la API web a través de HttpHeaderCollection. En versiones anteriores de .Net framework permitía agregar valores de encabezado a HttpHeaderCollection de la siguiente manera
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();
Pero en .Net Core no hay forma de agregar encabezados a la colección request.Heders . Además, no podemos agregar encabezados definiendo la nueva WebHeaderCollection
WebHeaderCollection aPIHeaderValues = new WebHeaderCollection();
¿Hay alguna forma alternativa de hacerlo en .Net Core
Aquí hay un ejemplo:
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;
}
La pregunta es sobre HttpWebRequest
, que es diferente de HttpClient
.
Usando HttpWebRequest
, simplemente asigne un encabezado que desee de esta manera:
request.Headers["HeaderToken"] = "HeaderValue";
.NET core creará el encabezado si no existe.