2012-03-01 6 views
0

YahooのPlaceFinder APIを使用して、郵便番号の経度と緯度を取得しようとしています。私のローカルマシンではすべて正常に動作しますが、プロダクションサーバーにアップロードするとYahooから接続が拒否されます。私は以下の私のコードをコピーした: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; 
     } 
    } 

私は取得していますエラーがある:対象のコンピュータによって拒否されたため、接続できませんでした。誰にもこれに関するアイデアはありますか?私は多くの検索を行っており、この問題に関する情報を見つけることはできないようです。私はこれが何らかの違いをもたらすのかどうかはわかりませんが、私のプロダクションサーバーは専用のクラウドサーバーです。どんな助けもありがとう。 (解析されていない)GetDynamicJsonObject(レスポンス)

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

そして、私のコード:

があなたのweb.configファイルをチェックしてください:

答えて

0

は、私は私のsolitionここにあなたの問題を解決しようと

 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

+0

こんにちはZoli、あなたの解決策を試してみましたが私はまだ同じエラーが発生しています –

+0

あなたのweb.configをチェックしましたか?他のサービスに連絡できますか?いいえの場合は、プログラム/マシンの設定に問題があります。 telnet cmd、 'telnet where.yahooapis.com 80'で確認してください(dを見るにはENTERを押してください)。 – Zoli

+0

私は、私があなたの解決策をテストしたときに追加したので、あなたが言及した私の設定のビットを持っていませんでしたが、喜びはありません。私はちょうど私のサーバーにtelnetクライアントをインストールし、あなたが示唆したようにyahooapis.comに接続しようとしましたが、私は接続できません。だから私のコードではなく、サーバーとの問題のように見えます。これは良いニュースと悪いニュースの両方です。サーバーに何が間違っているか考えていないとしますか? :) –

関連する問題