[英]command line cURL parameters in PHP
我正在研究必须连接到REST API的PHP脚本。 API的提供者,建议使用cURL。 他们给了我一个如何在命令行中使用它的例子:
curl -D- -u "user:password" -X GET -H "Content-Type: application/json" http://example.com/api/searchFunction?jql=assignee=user1
PHP脚本如下:
<?php
$defaults = array(
CURLOPT_HEADER => true,
CURLOPT_URL => 'http://example.com/api/searchFunction?jql=assignee=user1',
CURLOPT_USERPWD => "user:password",
CURLOPT_HTTPAUTH => 'CURLAUTH_BASIC'
);
$ch = curl_init();
curl_setopt_array($ch, ($defaults));
echo "cURL output: ".curl_exec($ch);
curl_close($ch);
?>
可以想象,命令行版本可以正常工作,但是在PHP版本中,出现以下错误:
Field 'assignee' does not exist or this field cannot be viewed by anonymous users.
这表明用户登录验证无效。 但是,用户名和密码正确。
我正在寻找命令行版本和PHP版本之间的cURL参数等效项的已答复帖子,但找不到适用于PHP版本的正确参数。
您尚未完全复制cURL命令。
对于初学者,您从未设置Content-Type: application/json
标头选项。 您需要使用CURLOPT_HTTPHEADER
选项进行设置。
其次,命令行cURL和PHP的cURL使用不同的User-Agent
值。
考虑启用命令行cURL的verbose选项,以便您可以查看其发送的所有信息,然后将其复制为PHP。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.