CURL ve HTTPS, "ana çözülemiyor"

5 Cevap php

Ben CURL kullanarak bir sayfanın içeriğini almak için çalışıyorum. Getirme yapıyor sayfa https olduğunu ve almak için çalışıyor sayfası da https olduğunu. Ben bir hata denemek tüm ayarları ile "ana çözülemedi" alıyorum.

$c=curl_init();
curl_setopt($c, CURLOPT_URL,$url);
//curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:x.x.x) Gecko/20041107 Firefox/x.x");
curl_setopt ($c, CURLOPT_RETURNTRANSFER, TRUE);
//curl_setopt($c, CURLOPT_SSL_VERIFYPEER, TRUE);
//curl_setopt($c, CURLOPT_SSL_VERIFYHOST, TRUE);
curl_setopt($c, CURLOPT_HEADER, FALSE);

$html=curl_exec($c);

if($html === false) {
    echo curl_error($c);
}
else {
    echo 'Operation completed without any errors';
}	


curl_close($c);

Herhangi bir fikir?

5 Cevap

, mmhh

belki DNS-Sayı?

Bu test kodu karşı url deneyin:

$_h = curl_init();
curl_setopt($_h, CURLOPT_HEADER, 1);
curl_setopt($_h, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($_h, CURLOPT_HTTPGET, 1);
curl_setopt($_h, CURLOPT_URL, 'YOUR_URL' );
curl_setopt($_h, CURLOPT_DNS_USE_GLOBAL_CACHE, false );
curl_setopt($_h, CURLOPT_DNS_CACHE_TIMEOUT, 2 );

var_dump(curl_exec($_h));
var_dump(curl_getinfo($_h));
var_dump(curl_error($_h));

Found here

(Başlangıçta SONRA wifi ile bağlanır) benim laptop üzerinde Apache ile bu sorun yaşıyorsanız, ve (connect sonra) sunucuyu yeniden başlatmadan oldu-ben yararlı olabilir sadece bir not sorunu sabit. Ben benim durumumda bu apache başlangıç ​​çevrimdışı ve belki de orada DNS sorgularının başarısız olduğunu belirterek ile yapmak olabilir sanırım?

Bu hata, makinenin bir IP adresine bir hostname çözmek olamaz anlamına gelir. Bu makineden bir web tarayıcısında ana erişebilir?

Sen HTTPS bölümünü etkinleştirmeniz gerekebilir:

curl_setopt($c, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST,  2);

Ve siz (kendinize kimlik doğrulaması) doğrulamak gerekir eğer bu çok ihtiyacınız olabilir:

curl_setopt($c, CURLOPT_USERPWD, 'username:password');

O, iyi şanslar yardımcı olur umarım!

Ben CURL bunu çözmek için çalışır ama (bu etkisi ya da bir şey) bir IPv6 cevap almazsa bu durumda IPv6 ve zaman aşımına kullanmaya karar olabilir bulundu.

Siz komut satırı anahtarını -4 bu test için deneyebilirsiniz.

PHP, bu ayarlayarak bu satırı yapılandırabilirsiniz:

curl_setopt($_h, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );