Curl 亚马逊mws提交源

Curl 亚马逊mws提交源,curl,amazon-mws,Curl,Amazon Mws,我正在尝试使用SubmitFeed操作更新数量。有人有这方面的经验吗?我收到的错误是:“操作或操作查询参数必须存在”,但查询字符串中确实有“Action=SubmitFeed” 我还编写了其他四个功能(RequestReport、GetReportRequestList、GetReport和GetFeedSubmissionList),它们工作得非常好。我想我缺少一些cURL配置选项来发布文件 卷曲选项: $ch = curl_init($url); curl_setopt($ch, CURLO

我正在尝试使用SubmitFeed操作更新数量。有人有这方面的经验吗?我收到的错误是:“操作或操作查询参数必须存在”,但查询字符串中确实有“Action=SubmitFeed”

我还编写了其他四个功能(RequestReport、GetReportRequestList、GetReport和GetFeedSubmissionList),它们工作得非常好。我想我缺少一些cURL配置选项来发布文件

卷曲选项:

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER => array(
    'Content-Type: application/x-www-form-urlencoded',
    'Content-MD5: '. $md5,
    'Transfer-Encoding: chunked',
)),
curl_setopt($ch, CURLINFO_HEADER_OUT => true);
curl_setopt($ch, CURLOPT_UPLOAD => true);
curl_setopt($ch, CURLOPT_PROTOCOLS => CURLPROTO_HTTPS);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_PORT , 443);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $url_parts));

有人能帮忙吗?谢谢。

要进行
SubmitFeed
呼叫,您必须使用
内容类型:text/xml
并将xml提要用作CURLOPT_POSTFIELDS。您的其他选项字段必须进入URL,就像这是一个
GET

$ch = curl_init($url_with_fields);                   <-- change 1
curl_setopt($ch, CURLOPT_HTTPHEADER => array(
    'Content-Type: text/xml',                        <-- change 2
    'Content-MD5: '. $md5,
    'Transfer-Encoding: chunked',
)),
curl_setopt($ch, CURLINFO_HEADER_OUT => true);
curl_setopt($ch, CURLOPT_UPLOAD => true);
curl_setopt($ch, CURLOPT_PROTOCOLS => CURLPROTO_HTTPS);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_PORT , 443);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmldata);      <-- change 3
$ch=curl\u init($url\u和\u字段);排列(
“内容类型:text/xml”,true);
curl_setopt($ch,CURLOPT_UPLOAD=>true);
curl_setopt($ch,CURLOPT_协议=>CURLPROTO_HTTPS);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_VERBOSE,true);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch,CURLOPT_端口,443);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch,CURLOPT_POSTFIELDS,$xmldata);嗨,你能分享你所有的参数吗?你这里的参数不足以帮助你。什么参数?这些就是我做卷发的全部。这可能对其他人有帮助:查找AMTU。这是一种更简单的提交提要的方法。AMTU在编写代码几分钟后就开始工作了。您不需要设置CURLOPT_UPLOAD,因为它会将方法更改为PUT。你所需要的只是POST@debianek对。我试着对他的代码进行最小的修改,但没有注意到上传的文件。我认为它应该仍然有效,但实际上还没有尝试过。