【发布时间】:2017-09-26 18:11:49
【问题描述】:
我正在尝试使用永久令牌授权发布带有HhttpClient 的 JSON,但我总是收到错误 401 Unauthorized code:
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;
}
}
我也试过这个:
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + AuthToken);
令牌似乎没问题。它是一个全小写的字母数字字符串。这是使用永久令牌的正确方法吗?
update 我必须用于标题的键是:IDENTITY_KEY 但仍然失败
【问题讨论】:
-
没有直接关系,但you are using
HttpClientwrong. -
不要手动序列化项目 (JsonConvert.SerializeObject)。只需将 item 传递给 PostAsJsonAsync。 (或使用 StringContent 和 JsonConvert.SerializeObject)手动完成
-
似乎是 Cory 指出的重复,但我仍然不确定这是否是使用永久令牌的正确方法,感谢 cmets
-
我必须使用的标题键是:IDENTITY_KEY 但仍然是错误 401
标签: c# json post httpclient access-token