题
所以我让我登录了这样的网站:
$ch = curl_init('https://emea2cps.adobeconnect.com/api/xml?action=login&login=username&password=password');
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_SSLVERSION,3);
curl_exec($ch);
$info= curl_getinfo($ch);
echo 'passed' . $info['total_time'] . ' secconds ' . $info['url'] . '------ and http-code'. $info['http_code'];
print curl_error($ch);
.
在我想通过这个链接获取我的会议XML https://meet77842937.adobeconnect.com/api/xml?action=report-my-meetings
我尝试了以下代码:
$ch1 = curl_init('https://meet77842937.adobeconnect.com/api/xml?action=report-my-meetings');
curl_setopt($ch1,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch1, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch1, CURLOPT_SSLVERSION,3);
curl_setopt($ch1,CURLOPT_RETURNTRANSFER,TRUE);
$data = curl_exec($ch1);
$info1= curl_getinfo($ch1);
echo 'passed' . $info1['total_time'] . ' secconds ' . $info1['url'] . '------ and http-code'. $info1['http_code'];
print curl_error($ch1);
curl_close($ch1);
curl_close($ch);
$xml = new SimpleXMLElement($data);
print_r($xml);
.
你能告诉我什么?
注意:当我在浏览器上输入此链接时,我可以看到XML
结构:
<results>
<status code="ok"></status>
<my-meetings>
<meeting sco-id="1282590819" type="meeting" icon="meeting" permission-id="host" active-participants="0">
<meeting sco-id="1282620938" type="meeting" icon="meeting" permission-id="host" active-participants="0">
</my-meetings>
</results>
.
输出: 如此:
sample1aksamaimeet77842937.adobeconnect.com/sample1/2014-02-28T06:15:00.000-08:002014-02-28T07:15:00.000-08:00false01:00:00.000sample2meet77842937.adobeconnect.com/sample2/2014-02-28T06:15:00.000-08:002014-02-28T07:15:00.000-08:00false01:00:00.000
. 解决方案
尝试添加以下:
curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, FALSE);
.
还:
$data = curl_exec($ch1); // after this line
var_dump(htmlentities($data)); // add this one
.
看看是什么输出。它会给你一个调试的起点。
更新
添加:
curl_setopt($ch, CURLOPT_COOKIEFILE, __DIR__.'/cookies');
curl_setopt($ch, CURLOPT_COOKIEJAR, __DIR__.'/cookies');
// repeat this for all $ch, $ch1, $ch2 and such where you need auth cookie available
.
存储登录信息并将其重用在其他请求中。您的错误显示您的第二个请求未经认真验证。所以我假设第一个设置一个cookie的登录,除非你需要携带第一个登录序列返回的变量。
and 删除\
中的password\
。您的密码有一个不应该在那里的额外角色!
工作代码:
// Login.
$ch = curl_init('https://emea2cps.adobeconnect.com/api/xml?action=login&login=username&password=password');
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_COOKIEFILE, __DIR__.'/cookies');
curl_setopt($ch,CURLOPT_COOKIEJAR, __DIR__.'/cookies');
$data = curl_exec($ch);
var_dump($data);
curl_close($ch);
// Query.
$ch = curl_init('https://meet77842937.adobeconnect.com/api/xml?action=report-my-meetings');
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_COOKIEFILE, __DIR__.'/cookies');
curl_setopt($ch,CURLOPT_COOKIEJAR, __DIR__.'/cookies');
$data = curl_exec($ch);
var_dump($data);
curl_close($ch);
.
阅读它。它足够清楚。
不隶属于 StackOverflow