2014-04-18 28 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 ...用\作品逃脱报价,但是&“才不是。