2017-07-24 275 views
1

什麼VBA代碼將允許我發送POST請求(在asp搜索框中),然後檢索<span id="xxx"></span>標記之間的數據? (在結果頁面)使用Excel VBA代碼發送POST和檢索數據

我有下面的代碼模擬在網頁搜索請求:

Dim Site As Object 
Set Site = CreateObject("InternetExplorer.application") 
Dim QNUMBER As String 
Dim URL As String 

URL = "apps/inventory/Default.aspx" 'local website 
QNUMBER = textBox_Scan.Text 
Site.navigate URL 
While Site.busy 
Wend 
Dim oHTMLDoc As Object 
Set oHTMLDoc = Site.document 

oHTMLDoc.getElementById("input_search").Value = QNUMBER 
oHTMLDoc.getElementById("btn_search").Click 

它不覺得「乾淨」到這樣做的,我覺得發送POST請求會更合適。

謝謝。

[編輯]

這是表單代碼

<form name="aspnetForm" method="post" action="Default.aspx" id="aspnetForm"> 

輸入文本ID

id="input_search" 

提交按鈕代碼

id="btn_search" 

,我想從獲取數據和<span id="budget">500$</span>

+0

我無法訪問網址。如果問題只是'HTTP POST'和'response',我可以給出答案。 –

+1

嗨,對不起,我忘了提及該網站是本地的,我已經編輯我的帖子與表單代碼和身份證我需要的東西 –

回答

2
Sub macroPOST() 
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP") 
    URL = "[Your URL]" 
    objHTTP.Open "POST", URL, False 
    objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
    objHTTP.Send ("id=dddaaa&pwd=1234[Your request parameters]") 

    replyTXT = objHTTP.responseText 

    If objHTTP.Status = "200" Then 'success 
     MsgBox replyTXT 
    Else 
     'Do something 
    End If 
End Sub 

它工作在我的Excel,感謝您仔細閱讀。