php curl请求封装

这是我封装的一个请求curl 请求类 get post请求 

<?php

/**

 * Created by PhpStorm.

 * User: 15161

 * Date: 2019/5/14

 * Time: 15:04

 */



namespace app\api\service;




class CurlService

{

    const GET = 0;

    const POST = 1;

    public $url;

    public $ch = null;

    private $type = 1;



    public function __construct() {



    }

    public function init( $url , $type = self::POST)

    {

        $this->url = $url;

        $this->ch = curl_init();

        $this->type = $type;

        return $this;

    }



    //post 方式传递数据

    public function send($param)

    {

        if( self::POST == $this->type) {

            return $this->posts($param);

        } else {

            return $this->gets($param);

        }

    }



    public function posts($post_data)

    {

        curl_setopt( $this->ch, CURLOPT_URL, $this->url );

        curl_setopt( $this->ch, CURLOPT_RETURNTRANSFER, 1 );

        curl_setopt( $this->ch, CURLOPT_HEADER, 0 );

        curl_setopt($this->ch, CURLOPT_POST, 1);

        curl_setopt($this->ch, CURLOPT_POSTFIELDS, $post_data);

        $output = curl_exec( $this->ch );

        return $output;

    }



    public function gets($get_data)

    {

        $url = $this->url.'?'.http_build_query($get_data);

        

        curl_setopt( $this->ch, CURLOPT_URL, $url );

        curl_setopt( $this->ch, CURLOPT_RETURNTRANSFER, 1 );

        curl_setopt( $this->ch, CURLOPT_HEADER, 0 );

        $output = curl_exec( $this->ch );

        //var_dump($output);die;

        return $output;

    }



    public function curl_get($url)

    {



        $info = curl_init();

        curl_setopt($info,CURLOPT_RETURNTRANSFER,true);

        curl_setopt($info,CURLOPT_HEADER,0);

        curl_setopt($info,CURLOPT_NOBODY,0);

        curl_setopt($info,CURLOPT_SSL_VERIFYPEER,false);

        curl_setopt($info,CURLOPT_SSL_VERIFYPEER,false);

        curl_setopt($info,CURLOPT_SSL_VERIFYHOST,false);

        curl_setopt($info,CURLOPT_URL,$url);

        $output = curl_exec($info);

        curl_close($info);

        return $output;

    }




}

如果想直接调用也有简单的curl  直接复制 干进类里面就完事了

    private function httpGet($url)
	{
		$oCurl = curl_init();
		if (stripos($url, "https://") !== FALSE) {
			curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
			curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
			curl_setopt($oCurl, CURLOPT_SSLVERSION, 1);
		}
		curl_setopt($oCurl, CURLOPT_URL, $url);
		curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
		$sContent = curl_exec($oCurl);
		$aStatus = curl_getinfo($oCurl);
		curl_close($oCurl);
		if (intval($aStatus["http_code"]) == 200) {
			return $sContent;
		} else {
			return false;
		}
    }
    
    public function curl_request($url, $data=null, $method='POST', $header = array("content-type: application/json"), $https=true, $timeout = 5){
        $method = strtoupper($method);
        $ch = curl_init();//初始化
        curl_setopt($ch, CURLOPT_URL, $url);//访问的URL
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//只获取页面内容,但不输出
        if($https){
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);//https请求 不验证证书
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//https请求 不验证HOST
        }
        if ($method != "GET") {
            if($method == 'POST'){
                curl_setopt($ch, CURLOPT_POST, true);//请求方式为post请求
            }
            if ($method == 'PUT' || strtoupper($method) == 'DELETE') {
                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); //设置请求方式
            }
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//请求数据
        }
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //模拟的header头
        //curl_setopt($ch, CURLOPT_HEADER, false);//设置不需要头信息
        $result = curl_exec($ch);//执行请求
        curl_close($ch);//关闭curl,释放资源
        return $result;
    }    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值