Amazon s3 AutoIT脚本/UDF与AmazonS3API接口
我正在尝试用AmazonS3API创建一个AutoIT脚本接口。我一直在尝试SOAP和REST,虽然没有成功 这是我在AutoIT论坛上使用Ptrex修改示例的SOAP代码,但是我得到以下响应: soapenv:Client.badRequest缺少SOAPAction标头 老实说,这个代码对我来说没有多大意义,我只是在修修补补 如果有任何示例或指南能让我正确地理解如何正确地与AmazonS3API接口,我将不胜感激Amazon s3 AutoIT脚本/UDF与AmazonS3API接口,amazon-s3,autoit,Amazon S3,Autoit,我正在尝试用AmazonS3API创建一个AutoIT脚本接口。我一直在尝试SOAP和REST,虽然没有成功 这是我在AutoIT论坛上使用Ptrex修改示例的SOAP代码,但是我得到以下响应: soapenv:Client.badRequest缺少SOAPAction标头 老实说,这个代码对我来说没有多大意义,我只是在修修补补 如果有任何示例或指南能让我正确地理解如何正确地与AmazonS3API接口,我将不胜感激 ; Initialize COM error handler $oMyErro
; 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)
我不知道这是否对您有所帮助,但从autoit部分来看,一切都很好,您从amazon获得的答案“soapenv:Client.badRequest Missing SOAPAction header”意味着它实际上说明了与您的请求有关的内容-即:缺少SOAPAction标头 您得到的确实是一个响应,但却是来自服务器的错误响应。我建议尝试重写请求 我在这里找到了最相关的描述: