在Android上React Native 0.20:URL无效为java.net.URI

时间:2016-03-10 22:59:02

标签: android react-native axios

我正在使用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)时也会出现此问题。

还有其他人遇到过这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

encodeURI()解决了“对我来说无效的java.net.URI”,虽然我使用的是fetch。

from:request.get(.....

to:request.get(encodeURI(.....))