Maison >développement back-end >tutoriel php >Comment résoudre le problème du retour de curl false en php ? (exemple d'explication)
Regardons d'abord une fonction curl encapsulée
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; }
Lorsqu'elle est appelée, le résultat de retour est bool(false)
Nous obtenons également l'erreur via curl_exec
devant le curl_error($curl)
fonctionstring(0) ""
Chaîne vide.
Enfin, j'ai trouvé que l'adresse de l'interface de l'API que j'ai appelée était du protocole ssl
, puis j'ajoute simplement les deux suivantes
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
Si l'adresse demandée par <.> contient des espaces Il renverra également curl
, vous devez donc y prêter une attention particulière false
et imprimé false
et j'ai obtenu l'erreur suivante curl_error($curl)
string(39) "Problem (2) in the Chunked-Encoded data" bool(false)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!