内容类型不随 CURLOPT_HTTPHEADERS 改变
我正在尝试使用 cURL 将一些 JSON 发布到 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 Access-Control-Allow-Origin:* 内容类型:text/plain 内容长度:120 日期:2011 年 3 月 18 日星期五 19: 03:23 GMT {"code":"error.indexdefinition.invalid","message":"为 /define 提供的内容无效。错误:文件过早结束.."}"
我发现 这篇博客文章似乎是相关的——它似乎确实在发送text/plain
,即使我已经指定了ContentTypeCURLOPT_HTTPHEADERS
中的 code> 作为 application/json
。但添加 http_build_query
并没有帮助。
预先感谢您的任何帮助!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信它应该是
HTTPHEADER
,而不是HTTPHEADERS
。http://php.net/manual/en/function.curl-setopt.php
I believe it should be
HTTPHEADER
, notHTTPHEADERS
.http://php.net/manual/en/function.curl-setopt.php