【问题标题】:how to write curl PHP script with this curl如何用这个 curl 编写 curl PHP 脚本
【发布时间】: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 文件。

标签: php curl


【解决方案1】:

从评论中,我读到 php 代码无法验证服务器证书。如果您可以这样做,这是忽略证书的选项。

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

我在this question.找到了更详细的配置

【讨论】:

    猜你喜欢
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2013-09-14
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多