首页 > 解决方案 > 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 中出现同样的错误。怎么了

在此处输入图像描述

标签: c#postmandocusignapirestsharp

解决方案


我相信您添加的参数是请求正文的一部分,而不是 URL 参数。比较请求是如何在 Postman 中完成的,它是正文的一部分。

我强烈建议您为此使用 .NET 库,而不是自己运行此代码。结合 .NET Core OAuth 或 .NET Framework 的 C# SDK 可用于执行此操作,而无需自己编写代码。


推荐阅读