فشل طلب cURL curl_exec
-
02-01-2020 - |
سؤال
أقوم بإنشاء واجهة برمجة تطبيقات Google Webfont المستندة إلى PHP لاستخدامها في مشروع ومطورين آخرين.هذا البرنامج النصي يكاد يكون واحدًا باستثناء طريقة واحدة تسبب لي الحزن.
المشكلة:
لدي طريقة تستخدم cURL لـ يستبدل سلسلة JSON الحالية مع النسخة الحالية من Google.
public function refreshFontList() {
if(empty($this->publicKey)) {
throw new Exception("API key cannot be empty", 1);
}
// cURL support is needed, test for cURL support before firing
if(!in_array("curl", get_loaded_extensions())) {
if(!init_get("allow_url_fopen")) {
die("Cannot get remote file");
}
} else {
echo "From Google\n";
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => "https://www.googleapis.com/webfonts/v1/webfonts?key=" . $this->publicKey,
CURLOPT_BINARYTRANSFER => TRUE, // for < PHP 5.1.3
CURLOPT_FAILONERROR => TRUE,
CURLOPT_FRESH_CONNECT => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HEADER => FALSE
)
);
var_dump(curl_exec($ch)); // shows as FALSE
curl_close($ch);
}
}
لسبب غير معروف بالنسبة لي، ch_exec()
تفشل الوظيفة في التقاط مخرجات استدعاء واجهة برمجة التطبيقات (API) إلى Google وتطبع ببساطة boolean(false)
كما الإخراج.لفهم نطاق المشروع بشكل أفضل، إليك الفصل بأكمله: http://tny.cz/d894e185.
ما حاولت
...
$output = curl_exec($ch);
var_dump($output); // still false
...
و
$this->setFontList(ch_exec($ch));
بالإضافة إلى ذلك، قمت أيضًا بتعطيل جميع الخيارات التي قمت بتعيينها curl_setopt_array
دون جدوى.
هو موضع تقدير كبير أي مساعدة!
المحلول
جربه مع:
CURLOPT_SSL_VERIFYHOST => FALSE,
CURLOPT_SSL_VERIFYPEER => FALSE,
مزيد من المعلومات:
لا تنتمي إلى StackOverflow