c# - docuSign oAuth 无效授权 C# 但在 Postman 中工作
问题描述
我试图access token
为 docuSign 进行 API 调用。
为此,我编写了以下代码:
string CLIENT_ID = "5a63c30f-...-08453c10a995";
string SECRET_KEY = "ef7e08fc-....-321444f9e825";
byte[] ENCODED_KEYS = System.Convert.ToBase64String(Encoding.GetEncoding(28591).GetBytes($"{ CLIENT_ID }:{ SECRET_KEY }"));
string CONTENT_TYPE = "application/x-www-form-urlencoded";
string AUTHORIZATION = $"Basic {ENCODED_KEYS}";
var rest = new RestSharp.RestRequest();
rest.Method = RestSharp.Method.POST;
rest.AddHeader("Content-Type", CONTENT_TYPE);
rest.AddHeader("Authorization", AUTHORIZATION);
rest.AddParameter(new RestSharp.Parameter("code", CODE, RestSharp.ParameterType.RequestBody));
rest.AddParameter(new RestSharp.Parameter("grant_type", "authorization_code", RestSharp.ParameterType.RequestBody));
rest.AddParameter(new RestSharp.Parameter("redirect_uri", REDIRECT_URI, RestSharp.ParameterType.RequestBody));
rest.RequestFormat = RestSharp.DataFormat.Json;
string API_PATH = "https://account-d.docusign.com/oauth/token";
var client = new RestSharp.RestClient(API_PATH);
var result = client.Execute(rest);
但是当在 Postman 中运行同样的事情时,它运行成功。
这真的让我很紧张,有什么线索吗?
编辑:非常重要
我取消选中Content-Type
邮递员
然后当我运行它时,在 Postman 中出现同样的错误。怎么了
解决方案
我相信您添加的参数是请求正文的一部分,而不是 URL 参数。比较请求是如何在 Postman 中完成的,它是正文的一部分。
我强烈建议您为此使用 .NET 库,而不是自己运行此代码。结合 .NET Core OAuth 或 .NET Framework 的 C# SDK 可用于执行此操作,而无需自己编写代码。
推荐阅读
- python - 如何在我的 python 代码中修复此错误?
- authentication - 登录后如何使用用户详细信息?
- hadoop - HDFS:dfs.block.size的确切含义
- here-api - JavaScript API 的 HERE 地图:没有 WebGL 的流量
- javascript - 关闭模式后,如何将焦点返回到单击的交互式元素?反应JS
- swagger - 如何使用springdoc-openapi / swagger生成映射到json对象的类型的可为空字段?
- apache - 重新启动apache2时出现mod_auth_form apache错误
- php - 如何将数据从控制器返回到 Laravel 中的 @include?
- c# - WrapPanel 调整大小时获取第一个子元素
- php - 项目在一个托管服务器上运行良好,但当另一个、CSS 和 jQuery 文件不工作时