如何将Qualys API v2与PHP一起使用


How to use Qualys API v2 with PHP?

我正在尝试使用Qualys API v2来返回xml主机列表。我认为你必须使用cURL,但我不熟悉它。这是我的代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_URL, "https://qualysapi.qualys.com/api/2.0/fo/asset/host/?action=list&details=Basic");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Requested-With: Manitowoc Service Account'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$xml = curl_exec($ch);
curl_close();
$hostobj = simplexml_load_string($xml);

实际上,QualysGuard API调用不需要curl。只要你可以进行https调用,你就可以使用任何你想要的方法。但是curl是一个很好的框架,因为所有的东西都已经实现了(使用perl,另一种选择是LWP)。

我一直无法找到您的代码的问题,但我发布了一个perl脚本,该脚本通过"使用WWW::Curl::Easy"发出API请求来启动和下载Qualys报告:https://community.qualys.com/docs/DOC-3222

我希望它可以帮助您用libcurl编写自己的perl API请求。

我看不出你的代码有什么问题,但我们当然看不出用户名和密码使用了什么值,也看不出这些凭据是否真的存在于QualyGuard中。

要从curl中获取给定请求的状态/错误信息,请按照curl手册中的说明使用curl_getinfo()curl_error()curl_errno()