我正在嘗試使用Amazon S3 API製作AutoIT腳本界面。我一直在嘗試SOAP和REST,儘管沒有成功。AutoIT腳本/ UDF與Amazon S3 API接口
這是SOAP代碼我與(從Ptrex在AutoIt的論壇變形例)的工作,但我得到如下回應: 「soapenv:Client.badRequest缺少SOAPAction頭」
說實話,代碼對我來說並沒有多大意義,我真的只是在修補。
任何例子或指針,讓我正確的方向在如何正確地與亞馬遜S3 API接口將不勝感激!
; Initialize COM error handler
$oMyError = ObjEvent("AutoIt.Error","MyErrFunc")
$objHTTP = ObjCreate("Microsoft.XMLHTTP")
$objReturn = ObjCreate("Msxml2.DOMDocument.3.0")
$strEnvelope = '<soap:envelope xmlns:soap="urn:schemas-xmlsoap-org:soap.v1">' & _
'<soap:header></soap:header>' & _
'<soap:body>' & _
'<ListAllMyBuckets xmlns="http://doc.s3.amazonaws.com/2006-03-01">' & _
'<AWSAccessKeyId>MYACCESSKEYID</AWSAccessKeyId>' & _
'<Timestamp>2006-03-01T12:00:00.183Z</Timestamp>' & _
'<Signature>MYSECRETSIGNATURE</Signature>' & _
'</ListAllMyBuckets>' & _
'</soap:body>' & _
'</soap:envelope>'
; Set up to post to our local server
$objHTTP.open ("post", "https://s3.amazonaws.com/soap", False)
; Set a standard SOAP/ XML header for the content-type
$objHTTP.setRequestHeader ("xmlns:aws", "http://security.amazonaws.com/doc/2007-01-01/")
Make the SOAP call
$objHTTP.send ($strEnvelope)
; Get the return envelope
$strReturn = $objHTTP.responseText
; ConsoleWrite("Debug : "& $strReturn & @CR & @CR)
; Load the return envelope into a DOM
$objReturn.loadXML ($strReturn)
ConsoleWrite("Return of the SOAP Msg : " & @CR & $objReturn.XML & @CR & @CR)
; Query the return envelope
$strQuery = "SOAP:Envelope/SOAP:Body/ListAllMyBuckets"
$dblTax = $objReturn.selectSingleNode($strQuery)
$Soap = $objReturn.Text
MsgBox(0,"SOAP Response",$Soap)