Yii2 use Curl

 

composer install curl

Command line cut into your project directory to perform

composer require --prefer-dist linslin/yii2-curl "*"

Wait for the installation to

After completion of the installation location curl

Project root directory / vendor / linslin

There linslin is installed successfully

Yii2 use Curl

. 1 ? < PHP
 2  namespace Server \ API;
 . 3  
. 4  use Yii;
 . 5  use Yii \ helpers \ Json;
 . 6  use linslin \ yii2 \ curl \ Curl;
 . 7  use Server \ utils \ Jwt;
 . 8  / * *
 . 9  * the API Foundation Classes
 10   * / 
. 11  class BaseApi
 12 is  {
 13 is      const API_POST = 'the POST'; // the POST request 
14      const API_GET = 'the GET'; // the GET request 
15      const API_HEAD = 'the HEAD'; // the HEAD request
16      const API_PUT = 'the PUT'; // the PUT request 
. 17      const API_DELETE = 'the DELETE'; // the DELETE request 
18 is  
. 19  
20 is      / * *
 21       * invoke the scripting interface
 22 is       * @param request URL address $
 23 is       * @param $ interfaces the params parameter
 24       * @param $ mode interface request type
 25       * @return Array [ 'error' =>. 1, 'MSG' => 'error', 'data' => 'data']
 26 is       * / 
27      public  function callApi ( url $ , $ params , $ of the type = Self ::API_POST)
 28      {
29  
30          IF (! $ URL ) {
 31 is              return [
 32                  'error' =>. 1,
 33 is                  'Message' => 'Script request address is empty',
 34 is              ];
 35          }
 36  
37 [          $ RET = [ 'error' => . 1 ];
 38 is          the try {
 39              $ curl = new new curl ();
 40              // request method 
41 is              $ curl = $ curl -> setHeaders ([
 42 is                  'the Type-the Content' => 'file application / JSON',
 43 is             ]);
 44              // set the request time 120 seconds 
45              $ curl -> the setOption (CURLOPT_TIMEOUT, 120 );
 46 is  
47              Switch ( $ type ) {
 48                  Case Self :: API_GET:
 49                      IF (! Empty ( $ the params )) {
 50                          URL $ . '?'. = http_build_query ( $ the params );
 51 is                      }
 52 is                      $ Response = $ curl -> GET ( $ URL );
 53 is                      BREAK ;
 54 is  
55                  Case self::API_POST:
56                     $response = $curl->setRawPostData(Json::encode($params))->post($url);
57                     break;
58 
59                 case self::API_PUT:
60                     $response = $curl->setRawPostData(Json::encode($params))->put($url);
61                     break;
62 
63                 case self::API_DELETE:
64                     $response = $curl->setRawPostData(Json::encode($params))->delete($url);
65                     break;
66 
67                 default:
68                     $response = $curl->setRawPostData(Json::encode($params))->post($url);
69                     break;
70             }
71 
72             $result = $response ? Json::decode($response) : [];
73             if (isset($result['result']) && $result['result'] == 'success') {
74                 $ret['error'] = 0;
75                 $ret['message'] = isset($result['msg']) ? $result['msg'] : 'successful';
76                 $ret['data'] = isset($result['data']) ? $result['data'] : [];
77             } else {
78                 $ret['message'] = isset($result['msg']) ? $result['msg'] : '未知错误';
79             }
80         } catch (\Exception $e) {
81             $ret['message'] = $e->getMessage().$this->_api_error_msg;
82         }
83         return $ret;
84     }
85 }

 

 

Guess you like

Origin www.cnblogs.com/chming/p/12164607.html