我有一个在Excel VBA中编程的代码,该代码获得了房地产经纪人的名称,并找到了他/她的代理ID。它是由常规的HTTP收到请求完成的,直到今年1月。最近,Realtor.ca网站重做了,现在他们使用ASMX Web服务获取数据。
我复制了Web请求(因为我判断不需要大多数不需要所有请求标题),但不能使其正常工作。我遇到500个内部服务器错误。
这是代码的摘录:
Public Function findRealtorIDbyName(iFirstName As String, iLastName As String) As Double
Dim Request As XMLHttp
Dim ApiMsg As String
Dim Doc As DOMDocument60
ApiMsg = "firstName=" & iFirstName & "&lastName=" & iLastName & "&provinceIds=4&recordsPerPage=20¤tPage=1&sortBy=3&sortOrder=A"
With Request
.Open "POST", "https://www.realtor.ca/Services/ControlFetcher.asmx/GetRealtorResults", False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "X-Requested-With", "XMLHttpRequest"
.send ApiMsg
Doc.LoadXML .responseText
End With
If Request.Status <> 200 Then
MsgBox "The Request returned " & Request.Status & Request.statusText
findRealtorIDbyName = -1
Exit Function
End If
...Code to find the ID from the XML...
End Function
和调用例程:
Public Sub test_findRealtorIDbyName()
Dim result As Double
result = findRealtorIDbyName("Vanessa", "Spaccucci")
MsgBox result
End Sub
我缺少什么?
对于一件事,您正在调用的URL返回500错误,因为您在更改之前调用的页面。您将需要更改您正在调用的URL。您可能需要在此处查看GITHUB页面,以获取有关API的一些信息。例如,看起来您可能要使用andymanID参数来检索特定房地产经纪人的结果。