Sample code for 30+ languages & platforms
AutoIt

REST through HTTP Proxy

See more REST Examples

Demonstrates how to connect through an HTTP proxy to make REST API calls.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.

; This example connects to a REST server through an HTTP proxy.
; It will connect to the Amazon AWS service for this example.
$oRest = ObjCreate("Chilkat.Rest")
$oSocket = ObjCreate("Chilkat.Socket")

; Set the HTTP proxy domain or IP address, and port.
$oSocket.HttpProxyHostname = "192.168.1.100"
$oSocket.HttpProxyPort = 8088

; We want to tell the socket object that we're doing HTTP over the proxy connection.
; This is because an HTTP proxy used for other protocols (IMAP, SMTP, SSH, FTP, etc.) 
; can require some internal differences in behavior (i.e. how we do things).
$oSocket.HttpProxyForHttp = True

; Other properties exist for specifying a proxy login, password, and authentication method (such as NTLM),
; but these are not used in this example.

; Connect through the HTTP proxy to the Amazon AWS server for the S3 service.
Local $bTls = True
Local $iPort = 443
Local $iMaxWaitMs = 5000
$bSuccess = $oSocket.Connect("s3.amazonaws.com",$iPort,$bTls,$iMaxWaitMs)
If ($bSuccess <> True) Then
    ConsoleWrite("Connect Failure Error Code: " & $oSocket.ConnectFailReason & @CRLF)
    ConsoleWrite($oSocket.LastErrorText & @CRLF)
    Exit
EndIf

; Use the proxied TLS connection:
$bSuccess = $oRest.UseConnection($oSocket,True)
If ($bSuccess <> True) Then
    ConsoleWrite($oRest.LastErrorText & @CRLF)
    Exit
EndIf

; Provide AWS credentials for the REST call.
$oAuthAws = ObjCreate("Chilkat.AuthAws")
$oAuthAws.AccessKey = "AWS_ACCESS_KEY"
$oAuthAws.SecretKey = "AWS_SECRET_KEY"
$oAuthAws.ServiceName = "s3"
$bSuccess = $oRest.SetAuthAws($oAuthAws)

; List all buckets for the account...
Local $sResponseXml = $oRest.FullRequestNoBody("GET","/")
If ($oRest.LastMethodSuccess <> True) Then
    ConsoleWrite($oRest.LastErrorText & @CRLF)
    Exit
EndIf

$oXml = ObjCreate("Chilkat.Xml")
$bSuccess = $oXml.LoadXml($sResponseXml)

; Show the full XML returned.
ConsoleWrite($oXml.GetXml() & @CRLF)

; Iterate over the buckets, showing each bucket name.
$bSuccess = $oXml.FindChild2("Buckets")
If ($oXml.FirstChild2() = True) Then
    ConsoleWrite($oXml.GetChildContent("Name") & @CRLF)
    While ($oXml.NextSibling2() = True)
        ConsoleWrite($oXml.GetChildContent("Name") & @CRLF)
    Wend
EndIf

; Move the internal pointer back to the root node.
$oXml.GetRoot2