我在使用PHP和Curl向Shopify发布XML数据时遇到了问题。我有:
$xml = '<?xml version="1.0" encoding="UTF-8"?><variant><id type="integer">260293006</id><fulfillment-service>manual</fulfillment-service><inventory-management>shopify</inventory-management><inventory-policy>deny</inventory-policy><sku>s136</sku><inventory-quantity type="integer">48</inventory-quantity><price>17.95</price></variant>';
$url = 'https://' . $API_KEY . ':' . $PASSWORD . '@' . $STORE_URL . '/admin/variants/#260293006.xml';我的代码是:
$session = curl_init();
curl_setopt($session, CURLOPT_URL, $url);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($session, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($session, CURLOPT_MAXREDIRS, 3);
curl_setopt($session, CURLOPT_POST, 1);
curl_setopt($session, CURLOPT_POSTFIELDS, $xml);
curl_setopt($session, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8'));
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($session);
echo $response;
curl_close($session);<title>Shopify » Please Log In</title>我想我可能遗漏了一些明显的东西。一旦我让这个函数工作起来,其他的一切都应该很容易构建。非常感谢。
发布于 2012-12-12 15:00:15
谢谢大家。基于这个反馈,我能够解决这个问题。主要问题:
$fp = tmpfile();fwrite($fp,$xml);fseek($fp,0);$session = curl_init();curl_setopt($session,CURLOPT_URL,$url);curl_setopt($session,CURLOPT_RETURNTRANSFER,true);curl_setopt($session,CURLOPT_PUT,true);curl_setopt($session,CURLOPT_BINARYTRANSFER,true);(,,);//文件指针(,,strlen());curl_setopt($session,CURLOPT_HTTPHEADER,数组(‘内容类型:应用程序/xml’));$response = curl_exec($session);fclose($fp);fclose
发布于 2012-12-12 01:46:33
我认为$url中不需要#,它应该是
$url = 'https://' . $API_KEY . ':' . $PASSWORD . '@' . $STORE_URL . '/admin/variants/260293006.xml';https://stackoverflow.com/questions/13816198
复制相似问题