سؤال

لذلك قمت بتسجيل الدخول إلى الموقع مثل هذا:

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

اقرأها.إنه واضح بما فيه الكفاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top