curl请求

curl请求

url为请求的地址
params为ppst请求的数据,若为空则是get

 public function makeRequest($url, $params = array(), $expire = 0, $extend = array(), $hostIp = '') {
	    if (empty($url)) {
	        return array('code' => '100');
	    }

	    $_curl = curl_init();
	    $_header = array(
	        'Accept-Language: zh-CN',
	        'Connection: Keep-Alive',
	        'Cache-Control: no-cache'
	    );
	    // 方便直接访问要设置host的地址
	    if (!empty($hostIp)) {
	        $urlInfo = parse_url($url);
	        if (empty($urlInfo['host'])) {
	            $urlInfo['host'] = substr(DOMAIN, 7, -1);
	            $url = "http://{$hostIp}{$url}";
	        } else {
	            $url = str_replace($urlInfo['host'], $hostIp, $url);
	        }
	        $_header[] = "Host: {$urlInfo['host']}";
	    }
	    // 只要第二个参数传了值之后,就是POST的
	    if (!empty($params)) {
	        curl_setopt($_curl, CURLOPT_POSTFIELDS, http_build_query($params));
	        curl_setopt($_curl, CURLOPT_POST, true);
	    }
	    if (substr($url, 0, 8) == 'https://') {
	        curl_setopt($_curl, CURLOPT_SSL_VERIFYPEER, FALSE);
	        curl_setopt($_curl, CURLOPT_SSL_VERIFYHOST, FALSE);
	    }
	    curl_setopt($_curl, CURLOPT_URL, $url);
	    curl_setopt($_curl, CURLOPT_RETURNTRANSFER, true);
	    curl_setopt($_curl, CURLOPT_USERAGENT, 'API PHP CURL');
	    curl_setopt($_curl, CURLOPT_HTTPHEADER, $_header);
	    if ($expire > 0) {
	        curl_setopt($_curl, CURLOPT_TIMEOUT, $expire); // 处理超时时间
	        curl_setopt($_curl, CURLOPT_CONNECTTIMEOUT, $expire); // 建立连接超时时间
	    }
	    // 额外的配置
	    if (!empty($extend)) {
	        curl_setopt_array($_curl, $extend);
	    }
	    $result['result'] = curl_exec($_curl);
	    $result['code'] = curl_getinfo($_curl, CURLINFO_HTTP_CODE);
	    $result['info'] = curl_getinfo($_curl);
	    if ($result['result'] === false) {
	        $result['result'] = curl_error($_curl);
	        $result['code'] = -curl_errno($_curl);
	    }
	    curl_close($_curl);
	    return $result;
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值