먼저 캡슐화된 컬 함수를 살펴보겠습니다
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; }
호출되면 반환 결과는 bool(false)
입니다bool(false)
我们在curl_exec
函数前面通过curl_error($curl)
获取错误也是 string(0) ""
空字符串。
最后发现自己调用的api的接口地址是ssl
协议的,然后加上下面两个就可以了
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
如果curl
请求的地址中含有空格也会返回false
的,这块也要格外注意
之前还遇到过一个返回false
打印curl_error($curl)
curl_error(<code>curl_exec 앞에 $를 전달합니다) code> 함수 컬)
얻어진 오류는 string(0) ""
빈 문자열이기도 합니다.
드디어 내가 호출한 API의 인터페이스 주소가 ssl
프로토콜이라는 것을 확인하고 다음 두 가지를 추가했습니다.
string(39) "Problem (2) in the Chunked-Encoded data" bool(false)🎜
curl에 공백이 포함되어 있습니다. <code>false
도 반환됩니다. 이전에 false
를 반환하고 curl_error($curl)를 사용하여 오류를 얻으려면 다음과 같습니다🎜<pre class="brush:php;toolbar:false;">//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);</pre>🎜이 오류에 대한 해결책은 다음 문장을 추가하여 컬이 사용하는 HTTP 프로토콜 버전을 설정하는 것입니다🎜rrreee
위 내용은 PHP에서 컬이 false를 반환하는 문제를 해결하는 방법은 무엇입니까? (예제 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!