#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Outfile=testing.exe #AutoIt3Wrapper_Compile_Both=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #pragma compile(Console, true) #include If FileExists(@ScriptDir & "\this_is_test.txt") Then SendFile("this_is_test.txt") Else MsgBox(64,"Error","Unknown file, nothing to do") EndIf If FileExists(@ScriptDir & "\this_is_another_test.txt") Then SendFile("this_is_another_test.txt") Else MsgBox(64,"Error","Unknown file, nothing more to do") EndIf Exit Func SendFile($sFileName) Local $sFolder = @ScriptDir & "\" Local $sFileData = FileRead($sFolder & $sFileName) Local $iFileLen = StringLen($sFileData) Local $iErr Local $bUseProxy = 0 Local $sProxyIP = "0.0.0.0" Local $sProxyPort = "8080" Local $sUserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0" Local $sMethod = "POST" Local $sHttpVersion = "HTTP/1.1" Local $iBytesWritten Local $sResponseHeader Local $sResponseData Local $hSession Local $hConnect Local $hRequest Local $sUrlPrefix = "http://" Local $sHostName = "posttestserver.com" Local $sUrlSuffix = "/" Local $sPHP_Script = "post.php" Local $sPHP_Param = "?dump&html&dir=scriptonize_testing_the_script" Local $sUserName = "" Local $sUserPass = "" ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; 1) Create/Open a session handle ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ;Depending on using a proxy we use the appropriate function call If $bUseProxy = 1 Then $hSession = _WinHttpOpen($sUserAgent,$WINHTTP_ACCESS_TYPE_NAMED_PROXY,$sProxyIP & ":" & $sProxyPort,$WINHTTP_NO_PROXY_BYPASS,0) $iErr = @error If $iErr Then ConsoleWriteError("Step 1) _WinHttpOpen(" & $sUserAgent & "," & $WINHTTP_ACCESS_TYPE_NAMED_PROXY & "," & $sProxyIP & ":" & $sProxyPort & "," & $WINHTTP_NO_PROXY_BYPASS & ",0) raises error: " & $iErr & @CRLF) $iErr = 0 EndIf ConsoleWrite("Step 1) Proxy ==> $hSession: " & $hSession & @CRLF) Else $hSession = _WinHttpOpen($sUserAgent, $WINHTTP_ACCESS_TYPE_NO_PROXY,$WINHTTP_NO_PROXY_NAME,$WINHTTP_NO_PROXY_BYPASS,0) $iErr = @error If $iErr Then ConsoleWriteError("Step 1) _WinHttpOpen(" & $sUserAgent & "," & $WINHTTP_ACCESS_TYPE_NO_PROXY & "," & $WINHTTP_NO_PROXY_NAME & "," & $WINHTTP_NO_PROXY_BYPASS & ",0) raises error: " & $iErr & @CRLF) $iErr = 0 EndIf ConsoleWrite("Step 1) No proxy ==> $hSession: " & $hSession & @CRLF) EndIf ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; 2) Create/Open connection handle ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Are we using HTTP or HTTPS? If StringInStr($sUrlPrefix,"Https",0) Then ; HTTPS If $hSession Then $hConnect = _WinHttpConnect($hSession,$sURLPrefix & $sHostName & $sUrlSuffix,$INTERNET_DEFAULT_HTTPS_PORT) ConsoleWrite("Step 2) Executing function _WinHttpConnect(" & $hSession & "," & $sURLPrefix & $sHostName & $sUrlSuffix & "," & $INTERNET_DEFAULT_HTTPS_PORT & ") " & @CRLF) ConsoleWrite("Step 2) $hConnect: " & $hConnect & @CRLF) Else ; HTTP If $hSession Then $hConnect = _WinHttpConnect($hSession,$sURLPrefix & $sHostName & $sUrlSuffix,$INTERNET_DEFAULT_HTTP_PORT) ConsoleWrite("Step 2) Executing function _WinHttpConnect(" & $hSession & "," & $sURLPrefix & $sHostName & $sUrlSuffix & "," & $INTERNET_DEFAULT_HTTP_PORT & ") " & @CRLF) ConsoleWrite("Step 2) $hConnect: " & $hConnect & @CRLF) EndIf ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; 3a) Create/Open a request handle ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; Are we using HTTP or HTTPS? If StringInStr($sUrlPrefix,"Https",0) Then ; HTTPS If $hConnect Then $hRequest = _WinHttpOpenRequest($hConnect,$sMethod, $sUrlSuffix & $sPHP_Script & $sPHP_Param, $sHttpVersion,$WINHTTP_NO_REFERER, "*/*", $WINHTTP_FLAG_SECURE) ConsoleWrite("Step 3a) Executing funcion: _WinHttpOpenRequest(" & $hConnect & "," & $sMethod & "," & $sUrlSuffix & $sPHP_Script & $sPHP_Param & "," & $sHttpVersion & "," & $WINHTTP_NO_REFERER & ",*/*," & $WINHTTP_FLAG_SECURE & ")" & @CRLF) ConsoleWrite("Step 3a) $hRequest: " & $hRequest & @CRLF) Else ; HTTP If $hConnect Then $hRequest = _WinHttpOpenRequest($hConnect,$sMethod, $sUrlSuffix & $sPHP_Script & $sPHP_Param, $sHttpVersion,$WINHTTP_NO_REFERER, "*/*", Default) ConsoleWrite("Step 3a) Executing funcion: _WinHttpOpenRequest(" & $hConnect & "," & $sMethod & "," & $sUrlSuffix & $sPHP_Script & $sPHP_Param & "," & $sHttpVersion & "," & $WINHTTP_NO_REFERER & ",*/*," & Default & ")" & @CRLF) ConsoleWrite("Step 3a) $hRequest: " & $hRequest & @CRLF) EndIf If $sUserName <> "" Then ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; 3b)Pass credentionals before sending a request ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _WinHttpSetCredentials($hRequest, $WINHTTP_AUTH_TARGET_SERVER, $WINHTTP_AUTH_SCHEME_BASIC, $sUserName,$sUserPass) $iErr = @error If $iErr Then ConsoleWriteError("Step 3b) _WinHttpSetCredentials raised an error: " & $iErr & @CRLF) $iErr = 0 EndIf ConsoleWrite("Step 3b) Executing funcion: _WinHttpSetCredentials(" & $hRequest & "," & $WINHTTP_AUTH_TARGET_SERVER & "," & $WINHTTP_AUTH_SCHEME_BASIC & "," & $sUserName & "," & $sUserPass & ")" & @CRLF) ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; 3c)Send the request ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- If $hRequest Then _WinHttpSendRequest($hRequest,$WINHTTP_NO_ADDITIONAL_HEADERS,$WINHTTP_NO_REQUEST_DATA,0,0) $iErr = @error If $iErr Then ConsoleWriteError("Step 3c) _WinHttpSendRequest raised an error: " & $iErr & @CRLF) $iErr = 0 EndIf ConsoleWrite("Step 3c) Executing funcion: _WinHttpSendRequest(" & $hRequest & "," & $WINHTTP_NO_ADDITIONAL_HEADERS & "," & $WINHTTP_NO_REQUEST_DATA & ",0,0)" & @CRLF) ConsoleWrite("Step 3c) $hRequest: " & $hRequest & @CRLF) ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; 3d) End the request ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _WinHttpReceiveResponse($hRequest) $sResponseHeader = _WinHttpQueryHeaders($hRequest) $iErr = @error If $iErr Then ConsoleWriteError("Step 3d) _WinHttpQueryHeaders raised an error: " & $iErr & @CRLF) $iErr = 0 EndIf ConsoleWrite("Step 3d) $sResponseHeader: " & $sResponseHeader & @CRLF) $iStatusCode = _WinHttpQueryHeaders($hRequest,$WINHTTP_QUERY_STATUS_CODE) $iErr = @error If $iErr Then ConsoleWriteError("Step 3d) _WinHttpQueryHeaders raised an error: " & $iErr & @CRLF) $iErr = 0 EndIf ConsoleWrite("Step 3d) $iStatusCode: " & $iStatusCode & @CRLF & @CRLF) EndIf ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; 4) Send the next request ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _WinHttpSendRequest($hRequest,$WINHTTP_NO_ADDITIONAL_HEADERS, $sFileData, $iFileLen,Default) $iErr = @error If $iErr Then ConsoleWriteError("Step 4) _WinHttpSendRequest raised an error: " & $iErr & @CRLF) $iErr = 0 EndIf ConsoleWrite("Step 4) Executing function _WinHttpSendRequest(" & $hRequest & "," & $WINHTTP_NO_ADDITIONAL_HEADERS & "," & $sFileData & "," & $iFileLen & ",Default)" & @CRLF) ConsoleWrite("Step 4) $hRequest: " & $hRequest & @CRLF) ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; 5) End the request ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _WinHttpReceiveResponse($hRequest) ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; 6) Show response from server ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- $sResponseHeader = _WinHttpQueryHeaders($hRequest) ConsoleWrite("Step 7) $sResponseHeader: " & $sResponseHeader & @CRLF) $iStatusCode = _WinHttpQueryHeaders($hRequest,$WINHTTP_QUERY_STATUS_CODE) ConsoleWrite("Step 6) $iStatusCode: " & $iStatusCode & @CRLF) ConsoleWrite("Step 6) Remote server responded with: " & _WinHttpReadData($hRequest) & @CRLF) ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ; 7) Close handles ; ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _winHttpCloseHandle($hRequest) _winHttpCloseHandle($hConnect) _winHttpCloseHandle($hSession) EndFunc