¿Cómo agrego un encabezado personalizado a una HttpClient
solicitud? Estoy usando el PostAsJsonAsync
método para publicar el JSON. El encabezado personalizado que necesitaría agregar es
"X-Version: 1"
Esto es lo que he hecho hasta ahora:
using (var client = new HttpClient()) {
client.BaseAddress = new Uri("https://api.clickatell.com/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "xxxxxxxxxxxxxxxxxxxx");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = client.PostAsJsonAsync("rest/message", svm).Result;
}
c#
asp.net
http-headers
dotnet-httpclient
Libin Joseph
fuente
fuente
Respuestas:
fuente
He encontrado la respuesta a mi pregunta.
Eso debería agregar un encabezado personalizado a su solicitud
fuente
Aquí hay una respuesta basada en eso de Anubis (que es un mejor enfoque ya que no modifica los encabezados para cada solicitud) pero que es más equivalente al código en la pregunta original:
fuente
HttpRequestHeader.Access
debería serHttpRequestHeader.Accept
.Hay una
Headers
propiedad en laHttpRequestMessage
clase. Puede agregar encabezados personalizados allí, que se enviarán con cada solicitud HTTP. EnDefaultRequestHeaders
laHttpClient
clase, por otro lado, establece los encabezados que se enviarán con cada solicitud enviada utilizando ese objeto de cliente, de ahí el nombre Encabezados de solicitud predeterminados .Espero que esto aclare las cosas, al menos para alguien que vea esta respuesta en el futuro.
fuente
Headers
es una propiedad de unHttpRequestMessage
objeto individual . Por lo tanto, puede crear diferentes mensajes con diferentes encabezados.DefaultRequestHeaders
es una propiedad delHttpClient
objeto; Si se envían varios mensajes a través de un determinadoHttpClient
, todos estos mensajes tendrán el mismoDefaultRequestHeaders
agregado a los encabezados individuales del mensaje.