有时候,当通过NuGet包MasterCard-Match调用Mastercard MATCH API时,我会收到JSON反序列化异常:
解析值<时遇到意外字符。路径'', 行0,位置0。
异常来自MasterCard.Core,内部异常来自Newtonsoft.Json,两者均具有相同的消息。
看起来我正在接收HTML(第0行,位置0处的“ <”),并且库正在尝试将其反序列化为JSON。我的猜测是,MasterCard API正在发回HTML错误页面,而不是JSON错误。但是我无法介入引发异常之前“看到”响应的函数调用。
根据documentation,我使用提供的数据创建请求映射,并调用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得到的响应?
我已经有一些逻辑可以等待,如果呼叫失败,请重试。