官方文档:https://guzzle-cn.readthedocs.io/zh_CN/latest/index.html
github: https://github.com/guzzle/guzzle

安装

composer require guzzlehttp/guzzle

自己封装了一个简单的类,用来get post

<?php
/**
 * Created by PhpStorm.
 * Date: 2019/4/7
 * Time: 12:01
 */
namespace App\Services;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;

class HttpService{

    protected $client;
    protected $error;

    public $url;
    public $request_data = [];
    public $quest_method = 'GET';

    public function __construct()
    {
        $this->client = new Client([
            'timeout'   =>  3.0
        ]);
    }

    //设置URL
    public function setUrl(string $url = ''){
        $this->url = $url;
        return $this;
    }
    //设置访问方法
    public function setMthod(string $method = ''){
        $this->quest_method = $method;
        return $this;
    }
    //设置请求变量
    public function setRequestData(array $request_data = []){
        $this->request_data = $request_data;
        return $this;
    }

    //获取get请求结果
    protected function _request(){
        switch ($this->quest_method){
            case 'GET':
                if ($this->request_data){
                    $this->url = $this->url .'?'. http_build_query($this->request_data);
                    $this->request_data = [];
                }
                break;
            default:
                break;
        }
        $res = [];
        try {
            $res = $this->client->request($this->quest_method,$this->url,$this->request_data);
        } catch (RequestException $e) {
            //echo $e->getRequest();
            if ($e->hasResponse()) {
//                $res = $e->getResponse();
                return false;
            }
        }
        return $res;
    }

    //返回结果
    public function getResult(){

        $response = $this->_request();
        if ($response && $response->getStatusCode() == '200'){
            $content = $response->getBody()->getContents();
            $res = is_null(json_encode($content)) ? $content : json_decode($content,true);
            return $res;
        } else{
            return false;
        }
    }

}

用法

<?php
use App\Service\HttpService;
$httpservice = new HttpService();
$param = [
    'appid'   =>   '1111',
    'page'    =>   '1'
];
$res = $httpservice->setUrl('url')
            ->setMthod('GET')->setRequestData($param)->getResult();
var_dump($res);

升级php7.2后,加密函数mcrypt_module_open()被废弃的解决方案。

方案1 直接输入 pecl install mcrypt-snapshot 此方案的好处是不用改代码 方案2 <?php class Encrypt{ //base64_encode(openssl_random_pseudo_bytes...

阅读全文

elasticsearch+kibana+filebeat+headPlugin配置参考

参考链接 filebat: https://www.elastic.co/cn/downloads/beats/filebeat https://www.elastic.co/cn/products/beats/filebeat Elastic Stack : https://www...

阅读全文

使用.env文件区分不同的线上环境数据库配置

有时候本地项目和线上项目需要不同的配置文件,这样就用到了.env文件。 1.首先在你的项目根文件夹下创建.env文件 并写入内容 DB_CONNECTION=mysql DB_HOST=12...

阅读全文

欢迎留言