2014-02-25 58 views
0

卷曲获取XML所以我做了这样一个登录网站:与HTTPS

$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); 

后,我想通过这个链接https://meet77842937.adobeconnect.com/api/xml?action=report-my-meetings

我尝试下面的代码来获取我的会议XML:

$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 
+0

您的预期产出是多少? –

+0

@ShankarDamodaran,我编辑过问题。你可以看到结构和输出 – nurgasemetey

回答

1

尝试添加:

curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, FALSE); 

另外:

$data = curl_exec($ch1); // after this line 
var_dump(htmlentities($data)); // add this one 

看看有什么输出。它会给你一个调试的起点。

UPDATE

地址:

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); 

阅读。这很清楚。

+0

** string'<?xml version =“1.0”encoding =“utf-8”?> '(length = 104)**此消息针对** var_dump **给出,但我已成功登录帐户的第一部分代码 – nurgasemetey

+0

您尚未登录。如果登录有效使用Cookie,您需要一个'CURLOPT_COOKIEFILE'来存储登录数据。 – CodeAngry

+0

因此我将cookie存储到某个文件中,如何在获取xml后使用它? – nurgasemetey