【发布时间】:2021-08-23 23:11:23
【问题描述】:
我想连接 API 站点,并获取 Access Token(oAuth2)。
此站点需要客户端 ID、客户端密码、代码和重定向 URL。
但是,现在 API 网站说“401”('未授权')。
所以,请告诉如何解决它。
我的 URL(重定向)是“http://www.localhost/hoge?puyofuga123(puyofuga123 是会话,随机字符集)。
我的源码(C#)
const string CLIENT_ID="****CLIENT_ID*****";
const string CLIENT_SECRET="****CLIENT_SECRET*****";
const string CODE = "****CODE****";
string redirectURL = context.Request.Url.ToString(); //HttpListenerContext context
Dictionary<string, string> dicRequest = new Dictionary<string, string>() {
{"grant_type","authorization_code" },
{"client_id",CLIENT_ID },
{"client_secret",CLIENT_SECRET },
{"code",CODE },
{"redirect_uri",redirectUrl }
};
HttpClient httpClient = new HttpClient(new HttpClientHandler {AllowAutoRedirect = false});
HttpContent httpContent = new FormUrlEncodedContent(dicRequest);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
//Get Access token, but now return 401.
responseMessage = await httpClient.PostAsync("****POST_URL****", httpContent);
【问题讨论】:
-
"所以,请告诉如何修复它。" 无需过多查看您的代码,这是特定于供应商的,如果不阅读文档,几乎不可能为您提供帮助,我个人觉得 OAuth 是一团糟,每个牛仔/女孩都可以按照他们想要的方式实现它,就像大多数网络世界一样。我建议你做的是使用邮递员,这样你就可以快速尝试,彻底彻底地重新阅读文档,如果疼痛仍然存在,请去看医生(我的意思是,联系供应商)
标签: c# oauth httpclient