c# - HttpResponeMessage 返回 401(未经授权)
问题描述
我正在尝试连接到 api,但得到以下结果:
StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Vary: Origin
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://example.url
Date: Sat, 30 Jan 2021 22:56:45 GMT
Set-Cookie: TS0182ab0d=0180bb6f22515cbe2cddec42f2bdc8cb4b394bf2447928c095c41f950fab6ce3b59180574be0cf84ba91749969bb6cfafcaf801f7d; Path=/; Domain=.api2.mofidonline.com
Content-Length: 0
}
这是我的标题
request.Headers.TryAddWithoutValidation("authority", "api2.example.url");
request.Headers.TryAddWithoutValidation("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36");
request.Headers.TryAddWithoutValidation("x-requested-with", "XMLHttpRequest");
string str = "BasicAuthentication" + mCookie["api-token"];
request.Headers.TryAddWithoutValidation("authorization", str);
request.Headers.TryAddWithoutValidation("accept", "*/*");
request.Headers.TryAddWithoutValidation("origin", "https://example.url");
request.Headers.TryAddWithoutValidation("sec-fetch-site", "same-site");
request.Headers.TryAddWithoutValidation("sec-fetch-mode", "cors");
request.Headers.TryAddWithoutValidation("sec-fetch-dest", "empty");
request.Headers.TryAddWithoutValidation("referer", "https://example.url/Home/Default/page-1");
request.Headers.TryAddWithoutValidation("accept-language", "en-US,en;q=0.9");
解决方案
这是不正确的:
string str = "BasicAuthentication" + mCookie["api-token"];
它是“基本”,然后您需要一个空格,后跟用户名和密码,并用冒号连接,作为凭据的 Base64 编码字符串。
例如:
string base64EncodedCredentials = Convert.ToBase64String(Encoding.ASCII.GetBytes("username:password"));
string authorizationHeader = "Basic " + base64EncodedCredentials;
推荐阅读
- python - 关于python中递归编程的一个问题
- oracle - 在存储过程中立即执行:命令未正确结束
- sharepoint - 如何使用 Power Automate Flow 将 SharePoint 列表项的所有修改器/编辑器存储在变量中?
- python - 查找一个数据帧中存在于另一个数据帧中的行的索引
- c# - 如何使用字符串作为对象(文本块)的名称?
- android - 如何在Android中查看所有带有mitmproxy的应用的流量?
- datetime - 如何处理 Data Studio 中的空日期字段?
- ubuntu - 在 Ubuntu 20.04 上安装 Redhawk 尝试启动 OmniOrb 服务但失败并出现以下错误:
- flutter - Flutter webrtc 一对多广播
- oracle - Oracle11g 带分页的选择查询