我需要使用PHP发送两个键值对参数和 HTTP正文内容(在本例中为XML字符串)。 cURL是我的类似任务的方法,但我无法弄清楚如何使用单个cURL Post请求发送两者。
我可以使用CURLOPT_POSTFIELDS发送一组键值对:
curl_setopt($c, CURLOPT_POSTFIELDS, array('foo' => 'bar', 'fruit' = 'orange));
OR 我可以使用CURLOPT_POSTFIELDS发送XML字符串。
curl_setopt($c, CURLOPT_POSTFIELDS,$xml);
API文档需要请求参数和单个帖子请求中的正文。此API还会限制请求,因此我的每小时调试次数有限。请帮忙。
修改:API文档(请参阅底部的示例):http://docs.developer.amazonservices.com/en_US/feeds/Feeds_SubmitFeed.html
答案 0 :(得分:1)
你有3个地方你可以放数据,URL本身(技术上不是标题的一部分,这是php获取$ _GET数据的地方),标题(php把它放在$ _SERVER变量中),和邮政机构。
您必须选择要放置数据的这三个地方中的哪一个。最有可能的,你想要的是将array('foo' => 'bar', 'fruit' = 'orange')
放在GET网址中,为此:$url='http://example.com?'.http_build_query(array('foo' => 'bar', 'fruit' = 'orange'));
但是如果你真的想要发送POST参数和http请求体中的XML,这可能不是你想要的,但如果你真的确定,那就是:{ {1}} - 也就是说,连接字符串。但这会导致XML文件无效,可能不是您想要的。
如果你想把数据放在标题中,请使用CURLOPT_HTTPHEADER,但要确保其格式为curl_setopt($c, CURLOPT_POSTFIELDS,http_build_query(array('foo' => 'bar', 'fruit' = 'orange').$xml);
然后keyname
,然后是一个空格,然后是值,但是有' s很多字头对于标题是非法的,在我的头顶,\ r \ n<> \ x00 - 但也有更多。