gpt4 book ai didi

android - OsmBonuspack - GeocoderNominatim::getFromLocationName - 来自服务器的无效响应:HTTP/1.1 403 Forbidden

转载 作者:行者123 更新时间:2023-11-29 20:09:57 25 4
gpt4 key购买 nike

我的 GeocoderNominatim.getFromLocation() 工作正常。

现在我在 GeocoderNominatim 期间出现错误而没有更改任何内容!?

来自服务器的无效响应:HTTP/1.1 403 Forbidden

我的 Logcat 输出:

02-02 11:15:31.570: D/BONUSPACK(25238): GeocoderNominatim::getFromLocationName:http://nominatim.openstreetmap.org/search?format=json&accept-language=de&addressdetails=1&limit=1&q=Bolivia
02-02 11:15:32.210: E/BONUSPACK(25238): Invalid response from server: HTTP/1.1 403 Forbidden

浏览器中的检查工作正常(http://nominatim.openstreetmap.org/search?format=json&accept-language=de&addressdetails=1&limit=1&q=Bolivia)

我的异步任务:

 public class SearchGeocode extends AsyncTask<String, Integer, List<Address>> {

Context context = MainActivity.this;
GeocoderNominatim coderNominatim = new GeocoderNominatim(context);
ProgressDialog progressDialog;
String countryTitleString;

protected List<Address> doInBackground(String... countryTitle) {

int i = 0;
publishProgress(i);

countryTitleString = Arrays.toString(countryTitle);

List<Address> geoResults = null;
try {
geoResults = coderNominatim.getFromLocationName(countryTitleString, 1);
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(context, "Geocoding error! Internet available?", Toast.LENGTH_SHORT).show();
}
return geoResults;

}

protected void onProgressUpdate(Integer... progress) {

progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setCancelable(true);
progressDialog.setMessage("Loading ...");
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setProgress(0);
progressDialog.show();

}

protected void onPostExecute(List<Address> geoResults) {
super.onPostExecute(geoResults);

progressDialog.hide();

if (geoResults.size() == 0) { //if no address found, display an error
Toast.makeText(context, countryTitleString +" - Country not found.", Toast.LENGTH_SHORT).show();
} else {
Address address = geoResults.get(0);
Bundle extras = address.getExtras();
BoundingBoxE6 bb = extras.getParcelable("boundingbox");
mapView.zoomToBoundingBox(bb);
//makeToast(countryTitle);
}
}
}

知道为什么我从服务器收到无效响应吗?

最佳答案

是的:2015 年 6 月,Nominatim 更改了他们的使用政策,现在需要用户代理。

因此 GeocoderNominatim 构造函数 evolved ,并要求您设置您的用户代理。通常,类似于:“your_application/version”

您还可以查看 GeocoderNominatim javadoc。

(我猜你使用的是相当旧的 OSMBonusPack 版本)

关于android - OsmBonuspack - GeocoderNominatim::getFromLocationName - 来自服务器的无效响应:HTTP/1.1 403 Forbidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35151130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com