Je suis en train de poster un JSON avec HhttpClient
en utilisant un jeton d'autorisation permanente, mais je reçois toujours une erreur 401 du code non autorisé:Ajouter autorisation tête jeton permanent à POST JSON en utilisant HttpClient dans l'API REST
public static async Task<Uri> CrearitemAsync(Item item)
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(BaseUri);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("OAuth", AuthToken);
HttpResponseMessage response = await client.PostAsJsonAsync(
"items/" + IdProvider, JsonConvert.SerializeObject(item));
response.EnsureSuccessStatusCode();
return response.Headers.Location;
}
}
J'ai aussi essayé ceci:
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + AuthToken);
Le jeton semble être bien. C'est une chaîne alphanumérique en minuscules. Est-ce la bonne façon d'utiliser un jeton permanent?
mise à jour La clé que je dois utiliser pour l'en-tête est: IDENTITY_KEY mais ne
Non directement lié, mais [vous utilisez 'HttpClient' incorrect] (https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/). –
Copie possible de [Paramètre d'en-tête d'autorisation de HttpClient] (https://stackoverflow.com/questions/14627399/setting-authorization-header-of-httpclient) – Cory
Ne pas sérialiser l'élément manuellement (JsonConvert.SerializeObject). Passez simplement * item * à PostAsJsonAsync. (ou utilisez * StringContent * et * JsonConvert.SerializeObject *) pour le faire manuellement –