C# 如何修复错误:远程服务器返回错误:(403)禁止| OpenStreet-Namingm API
我试图从OpenStreet访问Namingm API以获取纬度和经度,但它得到了错误:C# 如何修复错误:远程服务器返回错误:(403)禁止| OpenStreet-Namingm API,c#,.net,visual-studio,openstreetmap,C#,.net,Visual Studio,Openstreetmap,我试图从OpenStreet访问Namingm API以获取纬度和经度,但它得到了错误:远程服务器返回了一个错误:(403)禁止 我的.Net框架是4.6 这是我的密码: private void getLatLon(ref float latitude, ref float longitude) { dynamic CallOpenStreetApiRestService() { dynamic r
远程服务器返回了一个错误:(403)禁止
我的.Net框架是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/namignim
在使用策略中,它至少需要UserAgent
这对我很有用:
req.UserAgent=“.NET Framework测试客户端”代码>不错!我没有阅读文档,是用户代理。您应该将用户代理设置为更有用的名称,即您正在开发的软件的名称。