DaLiMan

[SOLVED] WinHttp.au3 ??

3 posts in this topic

#1 ·  Posted (edited)

I'm trying to download a file from our server at work which requires a login.

InetGet is not working so I was looking round for another method.
I came across winhttp.au3 but it seems like this is not shipped with the Autoit ZIP I have. (v3.3.14) 

Anyone have any ideas of where to get it, because I can't find it.
I also searched the forum, thinking it was trancexx who made it. (maybe I'm wrong here....)
Or is it obsolete and is there another / better way?

Any suggestions?

 

Edited by DaLiMan

Share this post


Link to post
Share on other sites



Nice, thanks!

Did not expect it to be outside of this community....;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Similar Content

    • souldjer777
      By souldjer777
      Good Morning AutoIT Geniuses! 
      Now, it could be that I've been away for a while - but I can get source from just about any website except adobe using InetGetSource.
      I have no idea why...   error: 13
      https://helpx.adobe.com/security.html
      https://helpx.adobe.com/security.html?promoid=HRYCM
      Thanks!
      #include <Inet.au3> HttpSetUserAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko") Local $sOpenAdobe_URLSecurityUpdates = 'https://helpx.adobe.com/security.html' Local $OpenSSL01 = _INetGetSource($sOpenAdobe_URLSecurityUpdates) WinHttp.au3 is returning results - I just don't get it...
      Thanks! 
      #include "WinHttp.au3" Opt("MustDeclareVars", 1) ; Initialize and get session handle Global $hOpen = _WinHttpOpen() ; Get connection handle Global $hConnect = _WinHttpConnect($hOpen, "helpx.adobe.com") ; Make a request Global $hRequest = _WinHttpSimpleSendRequest($hConnect, Default, "/security.html?promoid=HRYCM") If $hRequest Then ; Simple-read... ConsoleWrite(_WinHttpSimpleReadData($hRequest) & @CRLF) MsgBox(64, "Okey do!", "Returned source is print to concole. Check it.") Else MsgBox(48, "Error", "Error ocurred for _WinHttpSimpleSendRequest, Error number is " & @error) EndIf ; Close handles _WinHttpCloseHandle($hRequest) _WinHttpCloseHandle($hConnect) _WinHttpCloseHandle($hOpen)  
    • AutID
      By AutID
      Hello,
      It is the second time I am running to this problem again. First time I used simple form fill function from winhttp.au3. And I added a sleep between logins to make it work but this solution sucks.
      So I am wondering again, is there an other solution to perform a log in on website other than simple form fill?
      I just want to check credentials so I need to perform log in and then check for the username in the results.
      Here is an example with simple form fill

      #include "WinHttp.au3" Global $sRead, $hOpen, $hConnect Global $sUsername, $sPassword, $sName Global $sUrl = "https://www.facebook.com/" Global $sUserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)" $hOpen = _WinHttpOpen($sUserAgent) $hConnect = _WinHttpConnect($hOpen, $sUrl) $sRead = _WinHttpSimpleFormFill($hConnect, _   Default, _   "login_form", _   "name:email", $sUsername, _   "name:pass", $sPassword) If @error Then  MsgBox(0, "Error", "Error: " & @error) ElseIf StringInStr($sRead, $sName) = True Then  MsgBox(0, "", $sName & "'s credentials are correct.") Else  MsgBox(0, "", "Wrong credentials, please try again.") EndIf _WinHttpCloseHandle($hConnect) _WinHttpCloseHandle($hOpen)
    • AutID
      By AutID
      Hello,
       
      I am trying to make an auto log in script that will log in on our server with all the accounts of the people working on our domain read from the database(arround 20 accounts). The reason for this is everyone to recive update e-mail.
      We recive update e-mail with the latest updates everytime time we log in so that is the reason that i am creating this.
      Here is a small reproducer:

      #include "WinHttp.au3" OnAutoItExitRegister("_sExit") Global $sRead, $hOpen, $hConnect Global Const $sUsername[3] = ["name1", "name2", "name3"] Global Const $sPassword[3] = ["pass1", "pass2", "pass3"] Global Const $sUrl = "https://www.myServer.com/" Global Const $sUserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)" Local $a Local $b $hOpen = _WinHttpOpen($sUserAgent) $hConnect = _WinHttpConnect($hOpen, $sUrl) For $i = 0 To UBound($sUsername)-1  $a = $sUsername[$i]   $b = $sPassword[$i]   $sRead = _WinHttpSimpleFormFill($hConnect, _    Default, _    "login_1", _    "name:name", $a, _    "name:pass", $b)    If @error Then     ConsoleWrite(@error & @LF)    Else     If StringInStr($sRead, $a) Then ConsoleWrite($a & " succesfully logged in." & @LF)    EndIf Next Func _sExit()  _WinHttpCloseHandle($hConnect)  _WinHttpCloseHandle($hOpen) EndFunc If i put the $hOpen and $hConnect within the For/Next loop it will work but it will take more than 1 min to log in on our server with all the accounts.
      If not it won't work for all the accounts. If i use $hOpen and $hConnect only once then the server will fire error after 4-5 log ins and the winhttpsimpleformfill function will return that there are no forms, @error 1.
      Any other way to perform a log in without filling the form with data and submitting it?

      Cheers.
    • AutID
      By AutID
      Hello,
       
      I am trying to make an auto log in script that will log in on our server with all the accounts read from the database(arround 20 accounts). The reason for this is everyone to recive update e-mail.
      We recive update e-mail everytime time we log in so that is the reason that i am creating this.
      Here is a small reproducer:

      #include "WinHttp.au3" OnAutoItExitRegister("_sExit") Global $sRead, $hOpen, $hConnect Global Const $sUsername[3] = ["name1", "name2", "name3"] Global Const $sPassword[3] = ["pass1", "pass2", "pass3"] Global Const $sUrl = "https://www.myServer.com/" Global Const $sUserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)" Local $a Local $b $hOpen = _WinHttpOpen($sUserAgent) $hConnect = _WinHttpConnect($hOpen, $sUrl) For $i = 0 To UBound($sUsername)-1  $a = $sUsername[$i]  For $j = 0 To UBound($sPassword)-1   $b = $sPassword[$i]   ExitLoop  Next   $sRead = _WinHttpSimpleFormFill($hConnect, _    Default, _    "login_1", _    "name:name", $a, _    "name:pass", $b)    If @error Then     ConsoleWrite(@error & @LF)    Else     If StringInStr($sRead, $a) Then ConsoleWrite($a & " succesfully logged in." & @LF)    EndIf Next Func _sExit()  _WinHttpCloseHandle($hConnect)  _WinHttpCloseHandle($hOpen) EndFunc This work but not very good. The script will log in succesfully with the first 5-10 accounts but then it will return _WinHttpSimpleFormFill will return an error because of the fast log in on the server.  
      Is there an other way to do this without filling the form with data and submiting it? Like a simple request that will load the http with the credentials without doing the classic form fill?
      Cheers