【问题标题】:Error geting location data from latitude and longitude on Bingmaps从 Bing 地图上的纬度和经度获取位置数据时出错
【发布时间】:2011-12-15 03:52:53
【问题描述】:

我正在使用 Bingmaps API 来获取纬度和经度的 AdminDistrict 和 CountryRegion。 它可以在浏览器中输入此网址:

http://dev.virtualearth.net/REST/v1/Locations/-30,-70/?includeEntityTypes=AdminDivision1,CountryRegion&o=xml&c=es-ES&key=myBingmapsApiKey

但在 WP7 上的 C# 中,我无法让它工作。 这是代码:

string wsUrl = "http://dev.virtualearth.net/REST/v1/Locations/-30,-70/?includeEntityTypes=AdminDivision1,CountryRegion&o=xml&c=es-ES&key=*myBingmapsApiKey*";

var request = new RestSharp.RestRequest(Method.GET);
var client = new RestSharp.RestClient(wsUrl);

try
{
    RestSharp.RestResponse resource;
    client.ExecuteAsync(request, (response) =>
    {
        resource = response;
        string content = resource.Content;
        string status_code = resource.StatusCode.ToString();
        string response_status = resource.ResponseStatus.ToString();
    });
}
catch (Exception e)
{
    string error = "Error: " + e.ToString() + "\n. Stack Trace: " + e.StackTrace;
}

响应是:

    <?xml version="1.0" encoding="utf-8"?>
    <Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/search/local/ws/rest/v1">
<Copyright>Copyright © 2011 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.</Copyright>
<BrandLogoUri>http://dev.virtualearth.net/Branding/logo_powered_by.png</BrandLogoUri>
<StatusCode>401</StatusCode><StatusDescription>Unauthorized</StatusDescription>
<AuthenticationResultCode>InvalidCredentials</AuthenticationResultCode>
<ErrorDetails><string>Access was denied. You may have entered your credentials incorrectly, or you might not have access to the requested resource or operation.</string></ErrorDetails>
<TraceId>59ebcf604bb343d79a6e8b93ad5695fe|MIAM001452|02.00.71.1600|</TraceId>
<ResourceSets />
    </Response>

网址与在网络浏览器上工作的网址相同。 有什么问题?

【问题讨论】:

    标签: c# windows-phone-7 bing-maps bing-api restsharp


    【解决方案1】:

    可能此时您已经想出了一个解决方案,但是在 google 上搜索我发现了这个主题,解决方案是不要像您那样通过 url 发送密钥,而是将其作为参数添加到请求中,如下所示:

    string wsUrl = "http://dev.virtualearth.net/REST/v1/Locations/-30,-70/";    
    
    var request = new RestSharp.RestRequest(Method.GET);    
    request.AddParameter("includeEntityTypes", "AdminDivision1,CountryRegion");
    request.AddParameter("key", myLey);
    request.AddParameter("o", "xml");
    

    【讨论】:

      【解决方案2】:

      如果我理解这一点,那么您使用的 REST API may cost money。也许您的 API 密钥没有设置用于计费交易?

      该页面说明了 Location API 的计费:

      *如果此类别出现在 AJAX 控件或 Silverlight 控件会话的上下文中,则不计费。

      也许浏览器算作 AJAX 控件,而手机并不完全是“Silverlight 控件”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多