使用C# HttpClient进行令牌身份验证时出现身份验证错误。

8 浏览
0 Comments

使用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

我哪里出错了?

0