我第一次尝试使用 PHP 来使用 vCloud Director API。这是文档中的前两个步骤 - https://pubs.vmware.com/vca/index.jsp#com.vmware.vcloud.api.doc_56/GUID-6DC15CF5-3BCF-4426-9988-C71E7A71CBD6.html
向 vCloud Director 发出 API 版本请求以获取 REST API 的登录 URL。
使用登录 URL 创建登录会话。向此 URL 发布一个请求,其中包括您的用户名、密码和组织名称,采用 MIME Base64 编码。
但是,我无法使用登录 vCloud GUI 时使用的登录信息创建登录会话。
下面是我的代码:
//step 1
$url = 'https://vcloud.test.com/api/versions';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
$oXML = new SimpleXMLElement($result);
$loginURL = null;
foreach($oXML->VersionInfo as $oEntry){
$loginURL = $oEntry->LoginUrl;
break;
}
//step 2
$curl2 = curl_init();
curl_setopt($curl2, CURLOPT_POST, 1);
$loginData = 'api@System:password_here';
$data = base64_encode($loginData);
curl_setopt($curl2, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl2, CURLOPT_URL, $loginURL);
curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);
$result2 = curl_exec($curl2);
curl_close($curl2);
var_dump($result2);
$result2 只返回 false。
任何输入将不胜感激。
谢谢。