[英]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.