https에서 컬을 사용하여 XML 가져오기
-
21-12-2019 - |
문제
그래서 다음과 같이 사이트에 로그인했습니다.
$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
로그인 정보를 저장하고 다른 요청에 재사용합니다.귀하의 오류는 두 번째 요청이 인증되지 않았음을 나타냅니다.따라서 첫 번째 로그인 시퀀스에서 반환된 변수를 전달할 필요가 없는 한 첫 번째 쿠키가 로그인용 쿠키를 설정한다고 가정합니다.
그리고 제거하다 \
~에 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