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";