c# - 用 restsharp 刷新令牌
问题描述
在我的控制台应用程序中,我想刷新一个令牌,因为一个小时后令牌会出现,我正在尝试实现刷新令牌部分,我的代码如下:
var client = new RestClient("https://login.microsoftonline.com/common/oauth2/v2.0/token");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("grant_type", "refresh_token");
request.AddParameter("refresh_token", [My_Token]);
request.AddParameter("client_id", [My_ClientId]);
request.AddParameter("client_secret", [My_ClientSecret]);
request.AddParameter("scope", "offline_access");
request.AddParameter("redirect_uri", "urn:ietf:wg:oauth:2.0:oob");
IRestResponse response = client.Execute(request);
var content2 = response.Content;
但我得到了回应:
{"error":"invalid_request","error_description":"AADSTS900144: 请求正文必须包含以下参数:'refresh_token'。\r\n跟踪 ID: 56e56b4a-92b3-445a-9fcf-972b7a481300\r\n相关 ID: 5cb2b84b-f128-4d4f-888c-6c9a3be1d70b\r\n时间戳:2019-05-16 13:01:57Z","error_codes":[900144],"timestamp":"2019-05-16 13:01:57Z" ,"trace_id":"56e56b4a-92b3-445a-9fcf-972b7a481300","correlation_id":"5cb2b84b-f128-4d4f-888c-6c9a3be1d70b"}
解决方案
默认情况下,RestSharp 在 JSON 或 XML 中序列化正文。您需要GetOrPost
修复该问题https://github.com/restsharp/RestSharp/wiki/ParameterTypes-for-RestRequest#getorpost
request.AddParameter("grant_type", "refresh_token", ParameterType.GetOrPost);
request.AddParameter("refresh_token", [My_Token], ParameterType.GetOrPost);
request.AddParameter("client_id", [My_ClientId], ParameterType.GetOrPost);
request.AddParameter("client_secret", [My_ClientSecret], ParameterType.GetOrPost);
request.AddParameter("scope", "offline_access", ParameterType.GetOrPost);
request.AddParameter("redirect_uri", "urn:ietf:wg:oauth:2.0:oob", ParameterType.GetOrPost);
推荐阅读
- java - Spring Boot 模块 jar 中特定于环境的 YML 文件
- javascript - 我想在页面打开时保持第一个切换打开。如何才能做到这一点?
- macos - 如何启用/禁用聚合 CoreAudio 设备的输入或输出通道?
- laravel - 我收到错误没有为 diglactic 面包屑插件的错误定义提示路径?
- awk - 如果两个字符串在多行中,则只打印一次
- angular - 我如何以 IONIC 角度将 H3 标签的数据发送到我的组件
- git - 如何找到 git 进程挂起和终止
- python-3.x - ColumnTransformer 对象没有属性形状错误
- azure - Azure webapp 安全组访问
- java - 调用 glClear(GL_COLOR_BUFFER_BIT) 后 JOGL glDrawArrays 不起作用