Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 AutoIT脚本/UDF与AmazonS3API接口_Amazon S3_Autoit - Fatal编程技术网

Amazon s3 AutoIT脚本/UDF与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

我正在尝试用AmazonS3API创建一个AutoIT脚本接口。我一直在尝试SOAP和REST,虽然没有成功

这是我在AutoIT论坛上使用Ptrex修改示例的SOAP代码,但是我得到以下响应: soapenv:Client.badRequest缺少SOAPAction标头

老实说,这个代码对我来说没有多大意义,我只是在修修补补

如果有任何示例或指南能让我正确地理解如何正确地与AmazonS3API接口,我将不胜感激

; 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标头

您得到的确实是一个响应,但却是来自服务器的错误响应。我建议尝试重写请求

我在这里找到了最相关的描述: