在经过大量的搜寻和拖曳之后,我无法使用他们在Github上的示例代码来使BingMapsRESTToolkit正常工作。我已经安装了所有正确的依赖项(包括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
}
}
之后,将断点添加到响应行,它声称响应当前为空。控制台上也没有输出证明未命中WriteLine。
我的问题是,有什么公然导致API调用返回null的问题吗?
答案 0 :(得分:0)
经过更多的故障排除后,结果证明这段时间的代码足够好。但是,由于main方法中的API调用不多,因此没有足够的时间来获取API调用的响应。为此,我的解决方案是在main方法中的线程上放置15秒钟的睡眠时间,该时间足以使单独的线程获得响应,并有足够的时间让ApiCallAsync的其余部分运行其所有代码。