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 }