有时当通过 NuGet 包 MasterCard-Match 调用 Mastercard MATCH API 时,我会得到一个 JSON 反序列化异常:
解析值时遇到意外字符:<。路径 '',第 0 行,第 0 位置。
异常来自 MasterCard.Core,内部异常来自 Newtonsoft.Json,两者都有相同的消息。
看起来我正在接收 HTML('<' 在第 0 行,第 0 位)并且库正在尝试将其反序列化为 JSON。我的猜测是 MasterCard API 发送回一个 HTML 错误页面而不是 JSON 错误。但是我不能在抛出异常之前进入函数调用来“查看”它得到的响应。
根据文档,我使用提供的数据和调用创建了一个请求映射TerminationInquiryRequest.Create(map)
,这是引发异常的行。这个函数调用是一个黑匣子,我无法进入它,它只是抛出异常。
try
{
RequestMap requestMap = CreateRequestMap();
// This line throws the exception
TerminationInquiryRequest apiResponse = TerminationInquiryRequest.Create(requestMap);
}
catch(Exception e)
{
// Exception handling
}
我已经使用这个库进行了超过 11,000 次调用,只有 32 次出现了这个错误,但我当然每次都会听到它。
有什么方法可以调试我不知道的库,或者查看库从 API 获得的响应吗?
我已经有一些逻辑可以等待并在失败时重试呼叫。