[英]Docusign /oauth/token endpoint return page instead of json with bearer C#
我在DocuSign API中进行了OAuth2处理,我使用官方文档按照所有步骤进行操作,但是当我尝试执行请求以获取AccessToken时,我收到了HTML作为响应,并指出了类似“ DocuSign暂时不可用。请稍后重试。” 尽管http响应为200(确定),但奇怪的是,当我在Postman上使用相同的值进行测试时,我得到了正确的响应。
这是我的代码
public static DocuSignBearerToken GetBearerToken(string AccessCode, bool RefreshToken = false)
{
string AuthHeader = string.Format("{0}:{1}", DocuSignConfig.IntegratorKey, DocuSignConfig.SecretKey);
var client = new RestClient("http://account-d.docusign.com");
client.Authenticator = new HttpBasicAuthenticator(DocuSignConfig.IntegratorKey, DocuSignConfig.SecretKey);
var request = new RestRequest("/oauth/token", Method.POST);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddHeader("authorization", "Basic " + Base64Encode(AuthHeader));
if(!RefreshToken)
request.AddParameter("application/x-www-form-urlencoded", string.Format("grant_type=authorization_code&code={0}", AccessCode), ParameterType.RequestBody);
else
request.AddParameter("application/x-www-form-urlencoded", string.Format("grant_type=refresh_token&refresh_token={0}", AccessCode), ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
var responseString = response.Content;
DocuSignBearerToken Result = JsonConvert.DeserializeObject<DocuSignBearerToken>(responseString);
return Result;
}
好的,这很尴尬,阅读他们从未指定授权URL是http或https的DocuSign文档(我以为它是http),邮递员足够聪明,可以在执行请求时确定http或https,而我的代码却没有,只需更改从http://到https://的授权URL解决了该错误。
如果您使用Postman进行的测试有效,则您的代码有问题。
我们都去过那里,包括我在内!
在这些情况下,我将请求发送到requestb.in,以查看我实际发送到服务器的内容。 您会发现与通过邮递员发送的邮件有所不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.