Google地图反向地理编码始终在服务器端以602(未知地址)响应

时间:2011-01-11 17:17:44

标签: python django google-maps

我有调用Google地理编码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

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

2 个答案:

答案 0 :(得分:1)

尝试使用HTTP观察程序确保这是您的应用程序中发送的实际URL。有可能它没有被正确编码或者可能被错误地组装。由于您没有收到请求被拒绝,我们能够在直接查看时获得良好响应,这似乎是最佳起点。希望有所帮助!

答案 1 :(得分:1)

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

您可能还想使用urllib.urlencode函数进行连接。

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