无法通过VB.Net从API获取数据

时间:2020-06-14 16:18:34

标签: json ajax asp.net-mvc vb.net api

我尝试从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')
            }
        }
    })

谁可以帮助我解决这个问题?谢谢。

0 个答案:

没有答案
相关问题