【发布时间】:2015-10-21 03:52:10
【问题描述】:
我正在尝试编写 php 脚本来运行 curl 作业,这是创建票证的 curl 查询
curl -X POST -H "Content-Type: application/json" -H
"username:username" -H "password:password" --data
'{"serviceName":"CREATE_AVENT","keyValues":{"title":
"test","actionableevent_priority": "Minor","source":
"TEC","requester_login": "user"}}' -k
https://createticket.com/arsys/rest/service/createTicket
这是我用php写的脚本
$url="https://createticket.com/arsys/rest/service/createTicket";
$field=array("serviceName"=>"CREATE_AVENT","keyValues"=>array("title"=>"test","actionableevent_priority"=>"Minor","source"=>"TEC","requester_login"=>"user"));
$data_string = json_encode($field);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CAINFO, "/var/www/xxx/cacert.pem");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json','username:username','password:password'));
$output = curl_exec($ch);
print_r($output);
$info = curl_getinfo($ch);
$err=curl_error($ch);
print_r($err);
print "\n";
curl_close($ch);
当我执行 curl 查询时,它会返回票证 ID 并在系统中创建票证。 但是,当我运行脚本时,它没有返回任何东西,也没有系统中的票证。 谁能告诉我这个脚本有什么问题?
【问题讨论】:
-
你忘记了
$url末尾的“t” -
抱歉复制过去出错了。
-
在您的 curl 命令中,您将用户名和密码作为标头值传递。在您的 PHP 中,您将它们作为
CURLOPT_USERPWD传递。可能需要检查。 -
你从服务器得到什么响应码?
-
您可以使用
curl_setopt($cHandler, CURLOPT_SSL_VERIFYHOST, false);忽略 ssl,但更好的选择是添加经过验证的 pem 文件。