官方文档: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);

php predis 操作类库扩展

需先安装php predis 类库 详细predis 命令参考 :http://www.koukousky.com/back/1644.html <?php /** * Predis缓存驱动 * 要求安装phpredis扩展:https...

阅读全文

php imagick 水印、缩略图 图像处理类

使用前需安装 ImageMagick 客户端和 php Imagick 扩展类库 可解决上传图片在ios 下翻转的问题。 使用方法 $imagick = new \lib_image_imagick(); $width = 2...

阅读全文

适用于php7+的加密解密类

<?php /* * 加密解密类 */ namespace app\common\lib\encrypt; use Defuse\Crypto\Key; use Defuse\Crypto\Crypto; #使用之前需先安装 defuse/php-e...

阅读全文

欢迎留言