Como adiciono um cabeçalho personalizado a uma HttpClient
solicitação? Estou usando o PostAsJsonAsync
método para postar o JSON. O cabeçalho personalizado que eu precisaria ser adicionado é
"X-Version: 1"
Isto é o que eu fiz até agora:
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
fonte
fonte
Respostas:
fonte
Eu encontrei a resposta para minha pergunta.
Isso deve adicionar um cabeçalho personalizado à sua solicitação
fonte
Aqui está uma resposta baseada nisso, apresentada por Anubis (que é uma abordagem melhor, pois não modifica os cabeçalhos de todas as solicitações), mas que é mais equivalente ao código da pergunta original:
fonte
HttpRequestHeader.Access
deveriaHttpRequestHeader.Accept
.Há uma
Headers
propriedade naHttpRequestMessage
classe. Você pode adicionar cabeçalhos personalizados lá, que serão enviados com cada solicitação HTTP. ADefaultRequestHeaders
naHttpClient
classe, por outro lado, define cabeçalhos para serem enviados com cada solicitação enviada usando esse objeto cliente, daí o nome padrão cabeçalhos de solicitação.Espero que isso torne as coisas mais claras, pelo menos para alguém que vê esta resposta no futuro.
fonte
Headers
é uma propriedade de umHttpRequestMessage
objeto individual . Assim, você pode criar mensagens diferentes com cabeçalhos diferentes.DefaultRequestHeaders
é uma propriedade doHttpClient
objeto; se várias mensagens forem enviadas por um determinadoHttpClient
, todas essas mensagens terão o mesmo valorDefaultRequestHeaders
adicionado aos cabeçalhos individuais da mensagem.