POST JSON和PHP cURL
我有以下的PHP代码
curl_setopt($ch, CURLOPT_URL, $URL); curl_setopt($ch, CURLOPT_USERAGENT, $this->_agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, $this->_headers); curl_setopt($ch, CURLOPT_ENCODING , "gzip"); curl_setopt($ch, CURLOPT_VERBOSE, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 120); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_COOKIEFILE, $this->_cookie_file_path); curl_setopt($ch, CURLOPT_COOKIEJAR, $this->_cookie_file_path); curl_setopt($ch, CURLOPT_POSTFIELDS, '{"folderId":"1","parameters":{"amount":3,"ascending":false,"offset":0,"sort":"date"}}'); curl_setopt($ch, CURLOPT_POST, 1);
但我不明白为什么不工作。 我发布JSON的API说,没有收到参数。 我的代码有什么问题吗? 我认为整个技巧在JSON参数上......我不确定如何发送它们,因为我通常看不到任何“nave-> value”与http分析器,因为它通常以简单的形式出现...只是没有任何“名称”的JSON代码。
你可以使用这个和替换
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"folderId":"1","parameters":{"amount":3,"ascending":false,"offset":0,"sort":"date"}}');
用这个
$Parameters = array(
'MerchantCode' => $MerchantCode,
'PriceValue' => $amount,
'ReturnUrl' => $callback,
'InvoiceNumber' => $resnum,
);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($Parameters));
您尚未设置内容类型,因此发布的数据将作为表单数据发送。 尝试将内容类型设置为application / json。
如果这不起作用,请尝试用数组包装json字符串。
如果:你使用post方法,你应该知道:
CURLOPT_POST TRUE做一个普通的HTTP POST。 此POST是普通的应用程序/ x-www-form-urlencoded类型,最常用的是HTML表单。
@see http://php.net/manual/en/function.curl-setopt.php
所以:你可以这样做:
$ar_form = array('name'=>'PHPJungle','age'=>66,'gender'=>'male');
$poststr = http_build_query($ar_form ); # important
$options[CURLOPT_HTTPGET] = false;
$options[CURLOPT_POST] = true;
$options[CURLOPT_POSTFIELDS] = $poststr ; //default type:application/x-www-from-urlencoded
curl_setopt_array ( $ch, $options );
# @todo your other codes
这是我使用了很长时间的课程。该课程基于PHP cURL。 它支持GET / POST,HTTP / HTTPS。
@请参阅https://github.com/phpjungle/iHttp/
链接地址: http://www.djcxy.com/p/48883.html下一篇: How to use PHP cURL to send images with the correct Content