How to fix the error : the remote server returned an error: (403) forbidden | OpenStreet - Nominatim API
How to fix the error : the remote server returned an error: (403) forbidden | OpenStreet - Nominatim API
我正在尝试从 OpenStreet 访问 Nominatim API 以获取纬度和经度,但出现错误:the remote server returned an error: (403) forbidden
我的 .Net Framework 是 4.6
这是我的代码:
private void getLatLon(ref float latitude, ref float longitude)
{
dynamic CallOpenStreetApiRestService()
{
dynamic result;
string uri = $"http://nominatim.openstreetmap.org/search?street=Maracanã Stadium&format=json";
var req = (HttpWebRequest)HttpWebRequest.Create(uri);
req.Method = "GET";
//req.ContentType = "application/json";
//req.UseDefaultCredentials = true;
//req.Credentials = CredentialCache.DefaultCredentials;
//req.Proxy.Credentials = CredentialCache.DefaultCredentials;
using (var resp = req.GetResponse())
{
var results = new StreamReader(resp.GetResponseStream()).ReadToEnd();
result = JArray.Parse(results);
}
return result;
}
JArray result = CallOpenStreetApiRestService();
foreach (dynamic it in result)
{
var lat = Convert.ToInt32(it.lat.ToString());
var lon = Convert.ToInt32(it.lon.ToString());
latitude = lat;
longitude = lon;
}
}
如您所见,我已经尝试输入默认凭据但并不幸运
uri 在有和没有验证证书的情况下都适用于 Insomina
operations.osmfoundation.org/policies/nominatim
在使用政策中,最后需要UserAgent
这对我有用:
req.UserAgent = ".NET Framework Test Client";
我正在尝试从 OpenStreet 访问 Nominatim API 以获取纬度和经度,但出现错误:the remote server returned an error: (403) forbidden
我的 .Net Framework 是 4.6
这是我的代码:
private void getLatLon(ref float latitude, ref float longitude)
{
dynamic CallOpenStreetApiRestService()
{
dynamic result;
string uri = $"http://nominatim.openstreetmap.org/search?street=Maracanã Stadium&format=json";
var req = (HttpWebRequest)HttpWebRequest.Create(uri);
req.Method = "GET";
//req.ContentType = "application/json";
//req.UseDefaultCredentials = true;
//req.Credentials = CredentialCache.DefaultCredentials;
//req.Proxy.Credentials = CredentialCache.DefaultCredentials;
using (var resp = req.GetResponse())
{
var results = new StreamReader(resp.GetResponseStream()).ReadToEnd();
result = JArray.Parse(results);
}
return result;
}
JArray result = CallOpenStreetApiRestService();
foreach (dynamic it in result)
{
var lat = Convert.ToInt32(it.lat.ToString());
var lon = Convert.ToInt32(it.lon.ToString());
latitude = lat;
longitude = lon;
}
}
如您所见,我已经尝试输入默认凭据但并不幸运 uri 在有和没有验证证书的情况下都适用于 Insomina
operations.osmfoundation.org/policies/nominatim
在使用政策中,最后需要UserAgent
这对我有用:
req.UserAgent = ".NET Framework Test Client";