使用C# HttpClient进行令牌身份验证时出现身份验证错误。
使用C# HttpClient进行令牌身份验证时出现身份验证错误。
我使用一个 HttpClient 来调用 REST API,但是设置 Authorization 头部的时候遇到了问题。我需要将头部设置为从 signin 方法中接收到的令牌,但是当我在另一个方法中使用时,出现了身份验证错误。
var invoiceObj = new InvoiceUploadObj { dataFile = file, credential = "", domain = "" }; var invoiceObjSerialized = JsonConvert.SerializeObject(invoiceObj); var data = new StringContent(invoiceObjSerialized, Encoding.UTF8, "application/json"); HttpClient clientDemoWS = new HttpClient(); clientDemoWS.BaseAddress = new Uri("https://www.nameservice.com"); clientDemoWS.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); clientDemoWS.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization", String.Format("Bearer {0}", bearer_token)); HttpResponseMessage responseUpload = clientDemoWS.PostAsync("/services/invoice/upload", data).Result;
状态码是 200,但是当我反序列化服务器响应时,得到了一个身份验证错误作为错误描述。
通过 Fiddler 检查,我看到以下是头部:
POST /services/invoice/upload HTTP/1.1
Accept: application/json
Authorization: Bearer eyJ0eXAi......
Content-Type: application/json; charset=utf-8
Host: www.nameservice.com
Content-Length: 4623
Expect: 100-continue
我哪里出错了?