Passare i parametri in VBA HTTP Post Request

Sto cercando di fare una semplice richiesta di post sulla barra di ricerca principale di http://forums.egullet.org/ . (Questo è un esempio, ma sto cercando di creare uno strumento che funzioni con molti.)

Il problema è che non riesco a capire il modo giusto di strutturare / posizionare i parametri in modo tale che il server elabori la mia richiesta. (Ricevo una risposta, ma è solo una pagina che mi chiede di provare di nuovo la ricerca, piuttosto che il risultato che ottengo quando faccio la ricerca in un browser.La stringa argomento è stata tirata fuori da firebug, quindi sono abbastanza sono sicuro che sia corretto, ho solo l’impressione che non lo metto nel posto giusto / lo strutturi correttamente / che dica tutto ciò di cui ho bisogno, ma non so cosa cambiare. Vale la pena notare che in precedenza avevo questo funziona modificando il DOM di un object di Internet Explorer, ma sto cercando di passare a XMLHTTP perché è molto più veloce / più affidabile. Grazie per il tuo aiuto!

Sub httpPost() Dim XMLHTTP Dim result As String Dim argumentString argumentString = "?search_term=eggs&search_app=forums" Set XMLHTTP = CreateObject("MSXML2.XMLHTTP.6.0") XMLHTTP.Open "POST", _ "http://forums.egullet.org/index.php?app=core&module=search&do=search&fromMainBar=1", False XMLHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" XMLHTTP.setRequestHeader "Content-type", "application/x-www-form-urlencoded" XMLHTTP.send argumentString result = XMLHTTP.responsetext Set XMLHTTP = Nothing End Sub 

Penso che tu abbia bisogno di una e commerciale in cui hai un punto interrogativo

 argumentString = "&search_term=eggs&search_app=forums" 

Per renderlo più conciso e ottenere il titolo di quella pagina di destinazione:

 Sub httpPost() Dim http As New XMLHTTP60, html As New HTMLDocument Dim post As Object, argstr As String argstr = "type=all&q=eggs" With http .Open "POST", "https://forums.egullet.org/search/?", False .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" .setRequestHeader "Content-type", "application/x-www-form-urlencoded" .send argstr html.body.innerHTML = .responseText End With For Each post In html.getElementsByClassName("ipsStreamItem_title") With post.getElementsByTagName("a") If .Length Then Row = Row + 1: Cells(Row, 1) = .Item(0).innerText End With Next post End Sub