我正在尝试使用以下代码将一些JSON发布到使用cURL的Web服务:
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_URL, 'http://index.yolink.com/index/define?o=json&ak=APIKEY');
curl_setopt($ch, CURLOPT_HTTPHEADERS,array('Content-Type: application/json'));
$data = array(
'ignore-robots' => 'false',
'language' => 'english',
'crawl-delay' => '0',
'depth' => '3',
'root' => array('url' => 'http://bartleby.com/')
);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$result=curl_exec($ch);
var_dump($result);
我得到以下回报:
string(282)“HTTP / 1.1 200 OK服务器:Apache-Coyote / 1.1访问控制 - 允许 - 来源:*内容类型:text / plain内容 - 长度:120日期:2011年3月18日星期五19: 03:23 GMT {“code”:“error.indexdefinition.invalid”,“message”:“为/ define提供的内容无效。错误:文件过早结束..“}”
我发现this blog post似乎是相关的 - 即使我已将text/plain
中的ContentType
指定为{{1},它似乎确实在发送CURLOPT_HTTPHEADERS
}}。但添加application/json
并没有帮助。
提前感谢您的帮助!
答案 0 :(得分:9)
我认为它应该是HTTPHEADER
,而不是HTTPHEADERS
。