首页 > 解决方案 > INVALID_REQUEST_BODY 使用 C# DocuSign SDK 调用 ListStatusAsync 时出错

问题描述

我正在使用 C# DocuSign SDK。我只是想检索信封,所以使用 EnvelopesApi.ListStatusAsync。像这样:

EnvelopesApi envelopeApi = new EnvelopesApi(ApiClient.Configuration);
var options = new ListStatusOptions();
var date = DateTime.Now.AddDays(-30);
options.fromDate = date.ToString("yyyy/MM/dd");
var envelopesList = envelopeApi.ListStatusAsync(AccountId, null, options);

回复:

Error calling ListStatus: 
{
    "errorCode": "INVALID_REQUEST_BODY",
    "message": "The request body is missing or improperly formatted."
}

Fiddler 显示 400。我可以看到访问令牌包含在请求中(承载授权标头),所以没有问题。Fiddler 显示 PUT 请求:

https://demo.docusign.net/restapi/v2.1/accounts/[Account_ID_Guid]/envelopes/status?from_date=2019%2f12%2f14

基本上,这是从以下网址检索到的代码:https ://github.com/docusign/qs-csharp 。唯一的区别是使用 ListStatusAsync 而不是 ListStatus。我错过了与身体有关的东西吗?

标签: c#docusignapi

解决方案


您的代码与 QuickStart 示例的功能不太匹配。在 QS 中,使用的方法是 ListStatusChanges,而不是 ListStatus。

试试这个来获取过去 30 天的信封列表:

EnvelopesApi envelopesApi = new EnvelopesApi(apiClient.Configuration);
var options = new EnvelopesApi.ListStatusChangesOptions();
var date = DateTime.Now.AddDays(-30);
options.fromDate = date.ToString("yyyy/MM/dd");
var envelopesList = envelopesApi.ListStatusChanges(accountId, options);
var envelopesListFromAsync = envelopesApi.ListStatusChangesAsync(accountId, options);

推荐阅读