Попытка воспроизвести примеры BingMapsRESTToolkit, получение пустых ответов от вызова API внутри моего консольного приложения C #. - PullRequest
0 голосов
/ 07 января 2019

После долгих поисков и поисков за последний день я не могу заставить BingMapsRESTToolkit работать как положено, используя их пример кода на Github. У меня установлены все правильные зависимости (включая BingMapsRESTToolkit), и мой текущий код выглядит так.

    public static void Main(string[] args)
    {
        var apiCall = ApiCallAsync();
    }

     static async Task ApiCallAsync()
    {

        var request = new GeocodeRequest()
        {
            Query = "New York, NY",
            IncludeIso2 = true,
            IncludeNeighborhood = true,
            MaxResults = 25,
            BingMapsKey = ApiKey //Referencing a string constant here declared at the top of the project which is my Bing Query key from Azure.
        };


        var response = await ServiceManager.GetResponseAsync(request);
        if (response != null &&
            response.ResourceSets != null &&
            response.ResourceSets.Length > 0 &&
            response.ResourceSets[0].Resources != null &&
            response.ResourceSets[0].Resources.Length > 0)
        {
            var result = response.ResourceSets[0].Resources[0] as BingMapsRESTToolkit.Location;

            Console.WriteLine(result.Name.Length); // just a simple log in order to see if the request has definitely worked
        }
    }

После добавления точек останова к строке ответа он утверждает, что ответ в настоящее время является нулевым. На консоли также нет вывода, подтверждающего, что запись LineLine не нажата.

Мой вопрос, есть ли что-то явно вызывающее нулевые возвраты от вызова API?

1 Ответ

0 голосов
/ 08 января 2019

После гораздо большего устранения неполадок оказывается, что код был достаточно хорош для того времени. Однако из-за того, что он не сильно отличался от вызова API в методе main, у него не было достаточно времени, чтобы получить ответ на вызов API. Мое решение для этого состояло в том, чтобы поместить 15-секундный сон в поток в методе main, что было достаточно времени для отдельного потока, чтобы получить его ответ, и для остальной части ApiCallAsync, чтобы выполнить весь его код.

...