我正在尝试使用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);
答案 0 :(得分:1)
实际上,QualysGuard API调用不需要curl。只要您可以进行https调用,您就可以使用任何您想要的方法。但curl是一个很好的框架,因为一切都已经实现(使用perl,另一种选择是LWP)。
我无法找到您的代码的问题,但我发布了一个perl脚本,通过使用“使用WWW :: Curl :: Easy”发出API请求来启动和下载Qualys报告:https://community.qualys.com/docs/DOC-3222 < / p>
我希望它可以帮助您使用libcurl编写自己的perl API请求。
答案 1 :(得分:0)
我认为您的代码没有任何问题,但当然我们无法看到您使用的用户名和密码的值,以及这些凭据是否实际存在于QualysGuard中。
要从curl获取给定请求的状态/错误信息,请按照in the cURL Manual所述使用curl_getinfo()
,curl_error()
和curl_errno()
。