使用令牌与C#httpclient的身份验证错误

时间:2018-11-17 04:35:19

标签: c# rest webservice-client

我有一个用于使用REST API的HttpClient。但是,我在设置Authorization标头时遇到了麻烦。我需要将标头设置为从登录方法收到的令牌,但是在其他方法中使用标头时,会出现身份验证错误。

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 个答案:

没有答案