Определить причину ошибки сериализации изнутри библиотеки / пакета NuGet - PullRequest
0 голосов
/ 21 мая 2019

Иногда при вызове Mastercard MATCH API через пакет NuCet MasterCard-Match я получаю исключение десериализации JSON:

При анализе значения обнаружен неожиданный символ: <.Путь '', строка 0, позиция 0. </p>

Исключение от MasterCard.Core с внутренним исключением из Newtonsoft.Json, оба имеют одно и то же сообщение.

ПохожеЯ получаю HTML ('<' в строке 0, позиция 0), и библиотека пытается десериализовать его как JSON.Я предполагаю, что MasterCard API отправляет обратно страницу с ошибкой HTML вместо ошибки JSON.Но я не могу войти в вызов функции, чтобы «увидеть» ответ, который он получает, прежде чем выдать исключение. </p>

Согласно документации я создаю карту запроса с предоставленными данными и вызываю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?

У меня уже есть логика для ожидания и повторного вызова в случае сбоя.

...