2011-01-11 88 views
1

地理编码总是602(未知地址)响应我有一个调用谷歌的地理编码API,这样的服务器端代码:谷歌地图逆转服务器端

http://maps.google.com/maps/geo?q=40.714224,-73.961452&output=json&sensor=false&key=API_KEY 

其中API_KEY是我的API密钥。正如预期的那样,我收到了JSON回复,但回应始终为602(未知地址)。我的网址错了吗? (我也试过在Google docs的网址,但返回status: 'REQUEST_DENIED'

还有什么可能是错误的

更新:? 嗯,看来实际上是我在执行一个错误, 。不是URL这是我怎么做的:

api_params = { 
      'q': '40.714224,-73.961452', 
      'sensor': 'false', 
      'key': KEY, 
      'output': 'json' 
     } 

    # make the api call 
    http_response = urllib.urlopen('http://maps.google.com/maps/geo', 
             urllib.urlencode(api_params)) 
    r = json.load(http_response) 

,但将其更改为:

api_params = { 
      #'q': str(lat) + ',' + str(lng), 
      'q': '40.714224,-73.961452', 
      'sensor': 'false', 
      'key': KEY, 
      'output': 'json' 
     } 

    # make the api call 
    http_response = urllib.urlopen('http://maps.google.com/maps/geo?q='+api_params['q']+'&output=json&sensor=false&key='+api_params['key']) 
    r = json.load(http_response) 
    print r 

解决了这个问题。所以我的新问题是,第一个问题是什么?

+0

您是否在浏览器中试过这个?我按照原样浏览了该网址,并将它反馈给了我一个准确的结果。 – DerekH 2011-01-11 17:23:42

回答

1

第一个执行POST请求,第二个GET请求。

您可能还想使用urllib.urlencode函数进行串联。

但最简单的方法是使用geopy。

1

尝试使用HTTP观察器来确保这是在应用程序内发送的实际URL。可能有一个机会,它没有被正确编码或可能被错误地组装。由于您没有收到请求,我们在直接查看时得到了很好的回复,似乎可能是最好的开始。希望有所帮助!