PHP CURL常见远程接口调用问题

首先明确一下curl是什么?
curl 是一个库,能让你通过 URL 和许多不同种的服务器进行勾搭、搭讪和深入交流,并且还支持许多协议。并且 curl 可以支持 https 认证、http post、ftp 上传、代理、cookies、简单口令认证等等功能啦。
curl有什么问题呢?
先提供一段代码:


class test{
 private function request_get() {
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => "",
            CURLOPT_TIMEOUT => 1000,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_CUSTOMREQUEST => 'POST',


            CURLOPT_HTTPHEADER => array(
                'Content-Type: application/json',
                'Accept: application/json'
            ),

        ));
        $response = curl_exec($curl);
        curl_close($curl);
        var_dump($response);
        return $response;
    }
public function testOn(){
$test= $this->request_get();
print_r($test);
}

}

这段代码有没有问题呢?
其实大多数情况下这块代码是不存在任何问题的!
但是调用有些远程接口,它会报返回false,也就是没有连接成功,原因是什么呢?
所以不是代码问题:而是php采用curl机制问题,这个时候,就应该用new方法,动态调用!
所以转换思路:

php`
class test{
    public  function request_get() {
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => "",
            CURLOPT_TIMEOUT => 1000,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_SSL_VERIFYPEER  => false,
            CURLOPT_SSL_VERIFYHOST  => false,
            CURLOPT_CUSTOMREQUEST => 'POST',
            
            
            CURLOPT_HTTPHEADER => array(
                'Content-Type: application/json',
                'Accept: application/json'
            ),

        ));
        $response = curl_exec($curl);
        curl_close($curl);
        return $response;
    }
    
}

$rtn = (new test())->request_get();
print_r($rtn);

总结:当静态调用不成,则考虑动态调用!问题终将解决!

你可能感兴趣的:(php,android,开发语言,ocr)