首页 > 解决方案 > 使用带有 c# httpclient 的令牌的身份验证错误

问题描述

我有一个用于使用 REST API 的 HttpClient。但是我在设置授权标头时遇到问题。我需要将标头设置为从登录方法收到的令牌,但是当我在另一种方法中使用它时,我收到了身份验证错误。

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,但是当我反序列化服务器响应时,我得到一个身份验证错误作为错误描述。

检查提琴手我看到这是标题:

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

我哪里错了?

标签: c#restwebservice-client

解决方案


推荐阅读