如何使用必应 REST API
本文关键字:REST API 何使用 | 更新日期: 2023-09-27 17:57:24
您究竟如何使用 BING REST api(特别是 ROUTES 部分)来获取 ASP.NET 行驶距离。
我已经在谷歌上上下搜索了这个答案,但没有一个即将出现。
我找到了网址字符串,例如:
http://dev.virtualearth.net/REST/v1/Routes/Driving?waypoint.0=redmond&heading=90&waypoint.1=seattle&du=mi&key=BingMapsKey
真棒!但是如何从ASP中调用它呢?
我还找到了这段代码:
private void GetResponse(Uri uri, Action<HttpResponse> callback)
{
WebClient wc = new WebClient();
wc.OpenReadCompleted += (o, a) =>
{
if (callback != null)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(HttpResponse));
callback(ser.ReadObject(a.Result) as HttpResponse);
}
};
wc.OpenReadAsync(uri);
}
这是一种"发出网络请求的通用方法"。但是,再说一遍,你怎么称呼它?我发现它不需要返回类型令人困惑。
为了调用它,我找到了这样的代码:
string key = "YOUR_BING_MAPS_KEY or SESSION_KEY";
string query = "1 Microsoft Way, Redmond, WA";
Uri geocodeRequest = new Uri(string.Format("http://dev.virtualearth.net/REST/v1/Locations?q={0}&key={1}", query, key));
GetResponse(geocodeRequest, (x) =>
{
Console.WriteLine(x.ResourceSets[0].Resources.Length + " result(s) found.");
Console.ReadLine();
});
但是当我把它添加到项目中时,我会看到阳光下的每一个错误。所以,我被困住了。
我是一个完全的ASP初学者,根本没有找到任何在线文档的任何帮助。
附言我确实有一个 BING api 密钥,并在上面的代码中使用它。
我不是这方面的专家,但下面为我编译。此外,请确保添加 BING 文档中提到的数据构造:
protected void Page_Load(object sender, EventArgs e)
{
string key = "YOUR KEY";
string query = "ADDRESS";
Uri geocodeRequest = new Uri(string.Format("http://dev.virtualearth.net/REST/v1/Locations?q={0}&key={1}", query, key));
GetResponse(geocodeRequest, (x) =>
{
Console.WriteLine(x.ResourceSets[0].Resources.Length + " result(s) found.");
Console.ReadLine();
});
}
引用另一个堆栈溢出问题:
您正在使用的文档的底部指向 REST 服务所需的数据协定,这些协定可在此处获得:http://msdn.microsoft.com/en-us/library/jj870778.aspx
只需创建一个空的 C# 文件,然后粘贴到 C# 数据协定中即可。然后将命名空间添加到此类:
using BingMapsRESTService.Common.JSON;