PHP为什么要封装curl方法,一个常用的CURL封装的请求方法

/**

* CURL访问

* @param $url

* @param bool $params

* @param int $ispost

* @param array $header

* @param bool $verify

* @param bool $userCert

* @return bool|string

*/

public function http($url, $params = false, $ispost = 0, $header = [], $verify = false, $userCert = false) {

$httpInfo = array();

$ch = curl_init();

if(!empty($header)){

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

}

curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);

curl_setopt($ch, CURLOPT_TIMEOUT, 60);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

//忽略ssl证书

if($verify === true){

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

} else {

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

}

if ($ispost) {

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, $params);

curl_setopt($ch, CURLOPT_URL, $url);

} else {

if (is_array($params)) {

$params = http_build_query($params);

}

if ($params) {

curl_setopt($ch, CURLOPT_URL, $url . '?' . $params);

} else {

curl_setopt($ch, CURLOPT_URL, $url);

}

}

if ($userCert) {

curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');

curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');

//            curl_setopt($ch, CURLOPT_SSLCERT, ROOT_PATH.'application/api/controller/apiclient_cert.pem');

//            curl_setopt($ch, CURLOPT_SSLKEY, ROOT_PATH.'application/api/controller/apiclient_key.pem');

//双向证书验证时需要

}

$response = curl_exec($ch);

if ($response === FALSE) {

trace("cURL Error: " . curl_errno($ch) . ',' . curl_error($ch), 'error');

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

$httpInfo = array_merge($httpInfo, curl_getinfo($ch));

trace($httpInfo, 'error');

return false;

}

curl_close($ch);

return $response;

}

比较完善的一个curl封装方法,适用大部分网络请求场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值