2014-04-18 30 views
0

我想使用的libcurl正是如此,以創建一個AWS S3鬥:S3 PUT桶的位置端點導致MalformedXML例外

位置端點 curl_easy_setopt(捲曲,CURLOPT_URL, 「http://s3-us-west-2.amazonaws.com/」);

組裝的RESTful HTTP標頭:

PUT/HTTP/1.1 

Date:Fri, 18 Apr 2014 19:01:15 GMT 

x-amz-content-sha256:ce35ff89b32ad0b67e4638f40e1c31838b170bbfee9ed72597d92bda6d8d9620 
host:tempviv.s3-us-west-2.amazonaws.com 

x-amz-acl:private 

content-type:text/plain 

Authorization: AWS4-HMAC-SHA256 Credential=AKIAISN2EXAMPLE/20140418/us-west-2/s3/aws4_request, SignedHeaders=date;x-amz-content-sha256;host;x-amz-acl;content-type, Signature=e9868d1a3038d461ff3cfca5aa29fb5e4a4c9aa3764e7ff04d0c689d61e6f164 

Content-Length: 163 

主體包含剷鬥配置 http://s3.amazonaws.com/doc/2006-03-01/ & QUOT;>我們西-2-

我得到以下例外。 MalformedXML您提供的不充分的或者不驗證對我們的出版模式的XML

我已經能夠通過AWS CLI來進行同樣的操作。

我也試過的東西。

1)在xml中,使用\來轉義引號(即xmlns = \「http:.../\」)。 2)不提供CreateBucketConfiguration(「儘管s3文檔建議在將請求發送到位置端點時不允許這樣做)」。

3)將服務調用到相同的終點正確列出所有供應的桶。

請讓我知道,如果有什麼我可能會在這裏失蹤。

回答

0

好的,問題是我沒有通過wireshark trace來顯示整個xml。一旦我修好了,問題就消失了。

Btw ...用\作品逃脫報價,但是&「纔不是。