簡體   English   中英

c# postasync 返回未授權

[英]c# postasync returns unauthorized

我有以下代碼。 它返回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);
 httpClient.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 也必須具有角色授權,而不僅僅是令牌。

在“Bearer”之后放置一個空格,就像這樣“Bearer”

httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM