NodeJS请求模块Google Maps GeoCode API Post

时间:2017-01-16 13:05:12

标签: node.js rest google-maps express post

我编写了一个使用request module通过POST方法调用Google Maps Geocode API的函数,该方法将进一步修改以返回所提供地址的纬度和经度。

但是,它现在返回错误:

Hostname/IP doesn't match certificate's altnames: "Host: www.maps.googleapis.com. is not in the cert's altnames: DNS:*.googleapis.com, DNS:*.clients6.google.com, DNS:*.cloudendpointsapis.com, DNS:cloudendpointsapis.com, DNS:googleapis.com"

我已确认从输入参数值正确设置了变量地址。这是否表明由uri和qs串联构建的最终查询字符串是错误的?如果是,我如何检查并验证最终字符串是什么?

我的功能如下所示:

var lookup = function(input) {
    var address = input[0].address + ", " + input[0].city + ", " + input[0].state + ", " + input[0].zip;
    var apiKey = '<mykey>';
    var options = {
        uri: 'https://www.maps.googleapis.com/maps/api/geocode/json?',
        method: 'POST',
        json: true,
        body: input,
        qs: {
            address: address,
            key: apiKey
        }
    }
    request(options, function(error, response, body) {
        if (!error && response.statusCode == 200) {
            var info = JSON.parse(body);
            console.log(info);
        } else {
            console.log(error);
        }
    });
};

2 个答案:

答案 0 :(得分:0)

在大块的垃圾&#34;响应&#34;,在那里的某个地方有链接的最后一串。

但您可以随时手动输入密钥,例如

https://www.maps.googleapis.com/maps/api/geocode/json?key=yourApiKey

它是key =或apikey =检查googleapi文档

答案 1 :(得分:0)

原因是错误是将www.错误地添加到Google Maps API的网址中的结果。正确的字符串是:https://maps.googleapis.com/maps/api/geocode/json?