【发布时间】:2015-02-09 07:20:14
【问题描述】:
我正在尝试获取一个 PHP 脚本来访问 Puppet API。我花了 2 天时间搜索,无法相信我找不到任何信息(只有用于安装 PHP 的 puppet 模块)。
我只是想使用 PHP 和 curl,但我无法得到任何类型的响应、错误或任何东西。这是我(非常基本的)尝试从木偶大师那里获得证书:
function get_data($url) {
$request_headers = array();
$request_headers[] = 'Accept: s';
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$response = get_data('https://<puppet master>:8140/production/certificate/ca');
我想要复制的只是一个可以在我的服务器上运行的 curl 调用:
curl -k -H "Accept: s" https://<puppet master>:8140/production/certificate/ca
我有一种感觉,我可能遗漏了一些明显的东西,但我无法弄清楚。
【问题讨论】:
-
那么...为什么不在 PHP 脚本中设置
Accept: s标头? -
Doh,我错过了将其添加到我的问题中,感谢您指出这一点(已编辑)。我仍然没有收到响应数据。
-
好的,命令行中的下一个不包括在内:将
CURLOPT_SSL_VERIFYPEER设置为 false。如果还是不行,试试curl_error($ch);让它告诉你失败的原因。 -
Wrikken,成功了!非常感谢。我认为我的挫败感使我没有看到这个问题。