我尝试从API网站获取反向地理编码。但是它发现错误403被禁止。
这是我的VB.Net代码(后端代码)
<HttpPost>
Public Function Location(ByVal DataJSON As Location) As JsonResult
Dim LocationValue As Location = New Location With {
.Lat = DataJSON.Lat,
.Lon = DataJSON.Lon
}
Dim getrequest As HttpWebRequest
Dim response As HttpWebResponse
Dim reader As StreamReader
getrequest = DirectCast(WebRequest.Create("http://nominatim.openstreetmap.org/reverse?format=json&lat=" & LocationValue.Lat & "&lon=" & LocationValue.Lon & "&zoom=18&addressdetails=1&extratags=1"), HttpWebRequest)
response = DirectCast(getrequest.GetResponse(), HttpWebResponse)
reader = New StreamReader(response.GetResponseStream())
Dim ReverseLocate As New Location
Dim rawData As String = reader.ReadToEnd()
Dim jResults As Object = New JavaScriptSerializer().Deserialize(Of Object)(rawData)
ReverseLocate.Place = jResults("address[0]")
Return Json(ReverseLocate, JsonRequestBehavior.AllowGet)
End Function
错误到达此处
reader = New StreamReader(response.GetResponseStream())
还有我的AJAX函数
var Locate = new Object(); <!-- GET Required Data -->
Locate.Lat = Lat;
Locate.Lon = Lon
$.ajax({
url: "/home/Location",
data: JSON.stringify(Locate),
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function () {
alert('error')
},
success: function (response) {
if (response.errorcode == 0) {
alert('ok')
}
}
})
谁可以帮助我解决这个问题?谢谢。