我正在使用axios来使用Google的api获取GeoLocation信息。
var request = require('axios');
request.get(`https://maps.googleapis.com/maps/api/geocode/json?
latlng=${this.state.location.lat},${this.state.location.long}
&language=${this.state.language}&result_type=country|administrative_area_level_1
&key=${keys.googlemaps}`).then((response)=>{/* ... */})
此请求在iOS模拟器上运行时有效,但是当我在Android模拟器中发送此请求时,我得到以下异常:
{
config: ...,
data: "not valid as a java.net.URI: https://maps.googleapis.com/maps/api/geocode/json?latlng=65.9667,-18.5333&language=en&result_type=country|administrative_area_level_1&key=MY_KEY",
...
}
我在网上读过有关分号的其他帖子,在Android上抛出“无效的java.net.URI”例外,但此网址没有任何内容。使用其他网络API(如fetch)时也会出现此问题。
还有其他人遇到过这个问题吗?谢谢!
答案 0 :(得分:0)
encodeURI()解决了“对我来说无效的java.net.URI”,虽然我使用的是fetch。
from:request.get(.....
)
to:request.get(encodeURI(.....
))