2017-09-13 15 views
0

它显示了错误:OSM Bonuspack显示,从服务器无效的响应,当我想要得到的经度和纬度

Invalid response from server: HTTP/1.1 429 Too Many Requests

我用一个按钮来得到名字我要搜索:

if (v.getId() == R.id.find) { 
    String keyword = name.getText().toString(); 
    new UpdateSearch().execute(keyword); 
    find.setEnabled(false); 
} 

以下是在的AsyncTask使用GeocoderNominatim的:

public class UpdateSearch extends AsyncTask<String, Void, List<Address>> { 

    @Override 
    protected List<Address> doInBackground(String... params) { 
     // TODO Auto-generated method stub 

     GeocoderNominatim coderNominatim = new GeocoderNominatim(
       MainActivity.this); 
     List<Address> geoResults = null ; 
     try { 
      geoResults = coderNominatim.getFromLocationName(params[0], 3); 
      Log.d("aaaaaaaaaaaaaa",String.valueOf(coderNominatim)); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     return geoResults; 
    } 

    @Override 
    protected void onPostExecute(List<Address> result) {... 

而且我得到了错误:

09-13 15:04:39.352: D/BONUSPACK(547): GeocoderNominatim::getFromLocationName: http://nominatim.openstreetmap.org/search?format=json&accept-language=zh&addressdetails=1&limit=3&q=%E6%95%85%E5%AE%AB 09-13 15:04:39.355: W/System(547): ClassLoader referenced unknown path: /system/framework/tcmclient.jar 09-13 15:04:40.918: E/BONUSPACK(547): Invalid response from server: HTTP/1.1 429 Too Many Requests

几天前,我可以使用bonuspack,我得到了我想要的。但最近奖金包变得更糟。

回答

0

HTTP/1.1 429 Too Many Requests表示您正在从您的IP地址执行太多的请求。

您正在使用的Nominatim实例是由志愿者在捐赠的资源上运行的。请阅读usage policy,特别是关于每秒请求数的部分。

如果您需要执行更多的请求,然后switch to a different Nominatim instanceinstall your own Nominatim server

+0

但我只想要一个地方的地址。几天前我可以通过使用它来获取地址。 – Beview

+0

等待一段时间,然后尝试获得(仅通过执行单个请求)。你是否与其他人分享你的知识产权?这也可能是这个Nominatim实例的暂时问题。也许你可以告诉osmbonuspack使用不同的服务器。 – scai

0

nominatim policies

Provide a valid HTTP Referer or User-Agent identifying the application (stock User-Agents as set by http libraries will not do).

,你必须建立一个应用程序特定的用户代理

String MY_USERAGENT = "com.beview.mygeoapp"; 
GeocoderNominatim coderNominatim = new GeocoderNominatim(
      MainActivity.this, MY_USERAGENT); 
相关问题