首页 > 解决方案 > 无法通过 VB.Net 从 API 获取数据

问题描述

我尝试从 API web 获取反向地理编码。但它发现错误 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')
            }
        }
    })

谁能帮我解决这个问题?谢谢。

标签: jsonajaxasp.net-mvcvb.netapi

解决方案


推荐阅读