Yahoo PlaceFinder API连接问题

时间:2012-03-01 15:28:03

标签: asp.net-mvc-3 yahoo-maps

我正在尝试使用Yahoo的PlaceFinder API获取邮政编码的经度和纬度。在我的本地机器上一切正常,但是当我将它上传到我的生产服务器时,我收到来自雅虎的连接拒绝错误。我在下面复制了我的代码:

Dictionary<string, decimal> GetYahooGeoCode(string postcode)
    {

        string url = "http://where.yahooapis.com/geocode?flags=J&appid=[My_App_ID]&location=";

        decimal latitude = 0;
        decimal longitude = 0;

        try
        {
            dynamic yahooResults = new Uri(url + postcode).GetDynamicJsonObject();
            foreach (var result in yahooResults.ResultSet.Results)
            {
                latitude = (decimal)result.latitude;
                longitude = (decimal)result.longitude;
            }

            Dictionary<string, decimal> geoCode = new Dictionary<string, decimal>();

            geoCode.Add("latitude", latitude);
            geoCode.Add("longitude", longitude);

            return geoCode;
        }
        catch (Exception ex)
        {
            Log4NetLogger logger = new Log4NetLogger();

            logger.Error(ex);

            return null;
        }
    }

我得到的错误是:无法建立连接,因为目标计算机主动拒绝它。有没有人对此有任何想法?我做了很多搜索,似乎无法找到有关此问题的任何信息。我不知道这是否有所不同,但我的生产服务器是一个专用的云服务器。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

我试着在这里解决你的问题:

检查你的web.config:

<system.net>
    <defaultProxy />
</system.net>

我的代码(GetDynamicJsonObject()没有解析响应):

        string postcode = "10003";
        string url = String.Format("http://where.yahooapis.com/geocode?state={0}&postal={1}", "NY", postcode);

        Dictionary<string, decimal> geoCode = new Dictionary<string, decimal>();

        System.Xml.Linq.XDocument xDocument = XDocument.Load(url);
        var latlon = (from r in xDocument.Descendants("Result")
                      select new { latitude = r.Element("latitude").Value, longitude = r.Element("longitude").Value }).FirstOrDefault();

        if(null != latlon)
        {
            geoCode.Add("latitude", Convert.ToDecimal(latlon.latitude));
            geoCode.Add("longitude", Convert.ToDecimal(latlon.longitude));
        }

在此查看地方查找器yahoo api参数http://developer.yahoo.com/geo/placefinder/guide/requests.html#base-uri