Richieste GET e POST da AutoIt

Luca Cicchinelli/ dicembre 28, 2016/ Developing/ 0 comments

Come si possono creare richieste POST e GET direttamente da AutoIt?

Andremo ad utilizzare winhttp.winhttprequest.5.1, un oggetto dell’interfaccia COM del quale è possibile richiederne un’istanza attraverso ObjCreate.

POST

; POST_request.au3

$xyz_objc = ObjCreate("winhttp.winhttprequest.5.1")
$xyz_objc.Open("POST", "/xyz_objc_POST_example.php", False)
$xyz_objc.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$xyz_objc.Send("user=badpr0g")

GET

; GET_request.au3

$xyz_objc = ObjCreate("winhttp.winhttprequest.5.1")
$xyz_objc.Open("GET", "/xyz_objc_GET_example.php", False)
$xyz_objc.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$xyz_objc.Send("user=badpr0g")

Come potete vedere l’implementazione dei due tipi di richiesta è quasi identica.
Poi ovviamente potete ricorrere a le altre funzioni dell’ oggetto COM, come per esempio Status e ResponseTest.

Funzionalità aggiuntive

Status: Verifica se il server ha risposto correttamente alla richiesta effettuata facendo ritornare un numero di 3 cifre.(200 Successful)
ResponseTest: Fa ritornare la risposta del server una volta che ha finito di eseguire la richiesta.

Un breve esempio che coinvolge entrambe le funzioni:

; Esempio

$xyz_response = $xyz_objc.ResponseText
$xyz_status = $xyz_objc.Status

If $xyz_status = 200 Then ;Se questa variabile equivale a 200 è andato tutto per il verso giusto
ConsoleWrite($xyz_response) ;Scrive in console la risposta, volendo potreste benissimo salvarla in un file .html
Else
ConsoleWrite("Cosa cazzo hai combinato?") ;Amico, c'è qualquadra che non cosa
EndIf

Links che potrebbero tornarvi utili se volete approfondire qualcosa:

Facci sapere cosa ne pensi con un commento!