通过VBA发送AJAX POST请求时出错

时间:2018-07-12 15:00:26

标签: vba http

我正在尝试在VBA中模拟以下AJAX请求:

enter image description here

这是我到目前为止尝试过的代码:

Sub post() 

Dim cookie As String
cookie = ActiveSheet.Range("B2").Value

myurl = "https://pssst.net/psc/plnps010_2/EMPLOYEE/ERP/q/?ICQryName=CSG_INVOICE_SEARCH&ICDummy=632168845"
xmlhttp.Open "POST", myurl, False
'headers
xmlhttp.setRequestHeader "Cookie", cookie
xmlhttp.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
xmlhttp.setRequestHeader "Accept", "*/*"
xmlhttp.setRequestHeader "Accept-Encoding", "gzip, deflate"
xmlhttp.setRequestHeader "Accept-Language", "de-CH"
xmlhttp.setRequestHeader "Request", "/psc/plnps010_2/EMPLOYEE/ERP/q/?ICQryName=CSG_INVOICE_SEARCH&ICDummy=504188212"
xmlhttp.setRequestHeader "Connection", "Keep-Alive"
xmlhttp.setRequestHeader "Cache-Control", "no-cache"
xmlhttp.setRequestHeader "Content-Length", "548"
xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
xmlhttp.setRequestHeader "DNT", "1"
xmlhttp.setRequestHeader "Host", "pssst.net"
xmlhttp.setRequestHeader "Referer", "https://pssst.net/psc/plnps010_2/EMPLOYEE/ERP/q/?ICAction=ICQryNameURL=PUBLIC.CSG_INVOICE_SEARCH&"
'form data
xmlhttp.send "ICAJAX=1&ICNAVTYPEDROPDOWN=0&ICType=Query&ICElementNum=2&ICStateNum=1&ICAction=%23ICOK&ICModelCancel=0&ICXPos=0&ICYPos=0&ResponsetoDiffFrame=-1&TargetFrameName=None&FacetPath=None&ICFocus=&ICSaveWarningFilter=0&ICChanged=-1&ICAutoSave=0&ICResubmit=0&ICSID=aK%2BOaRkwQ5%2BZy2XCAL6JjXqIzpTVAlgS6ajirz0%2BUuM%3D&ICActionPrompt=false&ICTypeAheadID=&ICBcDomData=UnknownValue&ICPanelName=&InputKeys_BUSINESS_UNIT=%25&InputKeys_VOUCHER_ID=%25&InputKeys_INVOICE_ID=%25&InputKeys_VENDOR_ID=%25&InputKeys_REQUESTOR_ID=%25&InputKeys_NAME1=%25masters%20of%20speed%25"

Debug.Print xmlhttp.responseText

End Sub

但是,打印出来的只是用于网站通信错误的html,表示无法访问。

当我手动进入页面时,它需要接受SSL证书。那可能是错误的原因吗?还是上面的代码有问题?

我已经通过Python的请求模块尝试了类似的代码,但是即使verify设置为False,也无法克服SSL错误。

0 个答案:

没有答案
相关问题