Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann das Problem gelöst werden, dass Curl in PHP „false' zurückgibt? (Beispielerklärung)

Wie kann das Problem gelöst werden, dass Curl in PHP „false' zurückgibt? (Beispielerklärung)

不言
Freigeben: 2023-04-04 16:24:01
nach vorne
3261 Leute haben es durchsucht

In diesem Artikel werden die Lösungen für die Probleme vorgestellt, auf die ich bei der Verwendung von Curl gestoßen bin. Ich hoffe, es hilft allen.

Schauen wir uns zunächst eine gekapselte Curl-Funktion

function request_post($url = '', $param = '') {
    if (empty($url) || empty($param)) {
        return false;
    }
    $postUrl = $url;
    $curlPost = $param;
    $curl = curl_init();//初始化curl
    curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
    curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
    curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
    curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);//提交的参数
    $data = curl_exec($curl);//运行curl
    curl_close($curl);
    
    return $data;
}
Nach dem Login kopieren

an. Beim Aufruf lautet das Rückgabeergebnis bool(false)
. Wir erhalten den Fehler durch curl_exec vor dem curl_error($curl) Funktion und es ist auch string(0) "" Leere Zeichenfolge.

Schließlich stellte ich fest, dass die Schnittstellenadresse der von mir aufgerufenen API vom ssl-Protokoll stammte, und fügte dann einfach die folgenden beiden hinzu:

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
Nach dem Login kopieren

Wenn die Adresse von curl angefordert wurde Enthält Leerzeichen, wird es auch zurückgegeben. false sollte auch besonders beachtet werden

Ich bin vor dem Drucken auf eine Rückgabe false gestoßen curl_error($curl) und habe die folgende Fehlermeldung erhalten

string(39) "Problem (2) in the Chunked-Encoded data" bool(false)
Nach dem Login kopieren

Die Lösung Einstellungen für diesen Fehler Die von Curl verwendete HTTP-Protokollversion besteht darin, den folgenden Satz hinzuzufügen:

//CURL_HTTP_VERSION_1_0 (强制使用 HTTP/1.0)
//CURL_HTTP_VERSION_1_1 (强制使用 HTTP/1.1)。
curl_setopt($curlp, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann das Problem gelöst werden, dass Curl in PHP „false' zurückgibt? (Beispielerklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage