c#postasync返回未经授权的



我有以下代码。它正在返回一个401 Unauthorized,尽管它在PostMan上运行得很好。

HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", string.Format("Bearer {0}", token));
var data1 = new { fName = "Sam", lName = "F" };
var result = await client.PostAsync(url, new StringContent(data1.ToString(), Encoding.UTF8, "application/json"));
var response = result.ToString();

上面的代码可能出了什么问题?

开始在Postman中添加标题,一个接一个地添加到您的请求中。其中一个或多个是你所缺少的。

您还可以使用Fiddler来验证您认为您的请求是什么样子,以及它实际上是什么样子。

你可以试试这个

var contentType = new MediaTypeWithQualityHeaderValue("application/json");
client.DefaultRequestHeaders.Accept.Add(contentType);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
var json = JsonConvert.SerializeObject(data1);
var contentData = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url,contentData);

如果它不起作用,那么你的角色就有问题了。您的API也必须具有角色授权,而不仅仅是令牌。

最新更新