zoukankan      html  css  js  c++  java
  • yii2 httpClient的用法

    yii2 httpClient的用法示例:

    <?php
    /*
     * @Purpose : yii2 httpClient 请求示例
     * @Author  : Chrdai
     * @Time    : 2018-05-09
     * */
    
    use Yii;
    use yiiaseController;
    use yiihelpersJson;
    use yiihttpclientClient;
    
    
    class TestController extends Controller
    {
        //use ControllerTrait;
    
        /*
         * @Perpose 定义接口请求地址
         */
        public $url = 'http://192.168.18.100';
    
        /**
         * @var Client
         */
        public $httpClient = null;
    
        /*
         * @Perpose 错误信息
         */
        public $errMsg = '';
    
        /*
         * @Perpose 初始化的时候设置好接口请求地址
         */
        public function init()
        {
            parent::init();
            $this->httpClient = new Client([
                'baseUrl' => $this->url
            ]);
        }
    
        /**
         * @Perpose :   GET请求示例
         * http-client 接口文档:https://www.yiiframework.com/extension/yiisoft/yii2-httpclient/doc/guide/2.0/en/installation
         * @return mixed
         * http://192.168.18.100/api/test/index
         */
        public function actionIndex()
        {
            $params = 'username=admin&password=21232f297a57a5a743894a0e4a801fc3';
            $res = $this->httpClient->get('api/auth/login?' . $params )
                ->setOptions([
                    CURLOPT_CONNECTTIMEOUT => 5, // connection timeout
                    CURLOPT_TIMEOUT => 10, // data receiving timeout
                ])
                ->send();
            echo "<pre>";
            //var_dump($res);
            var_dump($res->isOk);
            var_dump($res->data);
            if($res->isOk && is_array($res->data)){
                if($res->data['errno'] == 0){
                    return Json::encode($res->data['result']['access_token']);
                }
            }else{
                $this->errMsg = $res->data['errmsg'];
                throw new Exception($this->errMsg);
            }
            return false;
        }
    
        /**
         * @Perpose :   POST请求示例
         */
        public function actionGetOrder()
        {
            $data = [
                'user_id' => '1',
                'dept_id' => '2',
            ];
            $params =  Json::encode($data);
            $res = $this->httpClient->post('/api/order?access_token=c834472d8193946f6465c9264b9f64d0',$params,['Content-Type'=>'application/json'])
                ->setOptions([
                    CURLOPT_CONNECTTIMEOUT => 5, // connection timeout
                    CURLOPT_TIMEOUT => 10, // data receiving timeout
                ])
                ->send();
            if ($res->isOk && is_array($res->data)) {
                if ($res->data['errno'] == 0) {
                    return Json::encode($res->data['result']);
                } else {
                    $this->errMsg = $res->data['errmsg'];
                    throw new Exception($this->errMsg);
                }
            }
            return false;
        }
    
        public function actionGetOrder1()
        {
            $data = [
                'user_id' => '1',
                'dept_id' => '2',
            ];
            $token['access_token'] = trim($this->actionIndex(),'"') ;
            $url = strpos($this->url,'?') ? $this->url . '/api/order&' . http_build_query($token) : $this->url . '/api/just-ari?' . http_build_query($token);
            //var_dump($url);die;
            $res = $this->httpClient->createRequest()
                ->setMethod('POST') // 请求方式
                ->setUrl($url)      // 请求地址
                ->setData($data)    //数据传数组
                ->setHeaders(['Content-Type'=>'application/json']) //header
                ->setFormat(Client::FORMAT_JSON) //提交的数据的格式
                ->setOptions([
                    CURLOPT_CONNECTTIMEOUT => 5, // connection timeout
                    CURLOPT_TIMEOUT => 10,       // data receiving timeout
                ])
                ->send();
            if ($res->isOk && is_array($res->data)) {
                if ($res->data['errno'] == 0) {
                    return Json::encode($res->data['result']);
                } else {
                    $this->errMsg = $res->data['errmsg'];
                    throw new Exception($this->errMsg);
                }
            }
            return false;;
        }
    }

    ·

  • 相关阅读:
    《linux内核设计与实现》读书笔记第十八章
    20135337朱荟潼 Linux第八周学习总结——进程的切换和系统的一般执行过程
    2013337朱荟潼 Linux第四章读书笔记——进程调度
    2013337朱荟潼 Linux&深入理解计算机系统第七章读书笔记——链接
    20135337朱荟潼 Linux第七周学习总结——可执行程序的装载
    2013337朱荟潼 Linux第三章读书笔记——进程管理
    20135337朱荟潼 Linux第六周学习总结——进程的描述和进程的创建
    2013337朱荟潼 Linux第十八章读书笔记——调试
    20135337朱荟潼 Linux第五周学习总结——扒开系统调用的三层皮(下)
    2013337朱荟潼 Linux第五章读书笔记——系统调用
  • 原文地址:https://www.cnblogs.com/chrdai/p/10612841.html
Copyright © 2011-2022 走看看