我有很多关于人的数据,我想对其中的一些进行地理编码(地址->坐标)。我为此使用HERE api,并使用fetch-node
从后端进行api调用。
现在的问题是我正在尝试对瑞典的一个城市(称为马尔默)进行地理编码。当我尝试获取
https://geocoder.api.here.com/6.2/geocode.json?app_id=${process.env.HERE_API_ID}&app_code=${process.env.HERE_API_KEY}&searchtext=${terms}
其中terms="Malmo"
一切正常,我得到了想要的响应。但是,当我尝试使用terms="Malmö"
提取并将其转换为JSON时,我得到一个FetchError
的话说Unexpected end of JSON input',
。
奇怪的是,如果我使用邮递员对相同的url进行GET请求,则一切正常,在浏览器中也是如此。你们知道是什么原因造成的吗?这是我的代码:
get_url(searchTerm) {
return `https://geocoder.api.here.com/6.2/geocode.json?app_id=${process.env.HERE_API_ID}&app_code=${process.env.HERE_API_KEY}&searchtext=${searchTerm}`;
}
async search(phrase, callback) {
let url = this.get_url(phrase);
console.log(url);
await fetch(url)
.then(res => {
console.log(`Got Response! \n ${res}`);
return res.json(); // Fails here!
})
.then(body => {
let view = body.Response.View;
if (view.length > 0) {
console.log(`Body: ${view[0].Result[0].Location.Address.Label}`)
}
})
.catch(err => console.error(err));
}