yii2 curl的使用办法
get:
use linslinyii2curl; public function actionCurl($value =0) { $url = 'http://yandex.ru/search/'; $curl = new curlCurl(); //post http://example.com/, reset request before $response = $curl->reset()->setOption( CURLOPT_POSTFIELDS, http_build_query(array( 'text' => $value ) ))->post($url); return $curl->response; //get $authUrl = ‘http://www.baidu.com’; $curl = new Curl(); $response = $curl->get($authUrl); }
当访问https是可能会出现空白需要将ssl设置为false
$curl->setOption(CURLOPT_SSL_VERIFYPEER, false);
post:
// POST URL form-urlencoded // post 请求 , 数据格式为 form-urlencoded格式 $curl = new curlCurl(); $response = $curl->setPostParams([ 'key' => 'value', 'secondKey' => 'secondValue' ]) ->post($authUrl);
// POST RAW JSON // 发起post请求,数据为json格式 $curl = new curlCurl(); $response = $curl->setRawPostData( json_encode([ 'key' => 'value', 'secondKey' => 'secondValue' ])) ->post($authUrl);
// POST RAW XML / 发起post请求,数据为xml格式 $curl = new curlCurl(); $response = $curl->setRawPostData('<?xml version="1.0" encoding="UTF-8"?><someNode>Test</someNode>') ->post($authUrl);
// POST with special headers // 发起post请求,并且设置header头部参数 $curl = new curlCurl(); $response = $curl->setPostParams([ 'key' => 'value', 'secondKey' => 'secondValue' ]) ->setHeaders([ 'Custom-Header' => 'user-b' ]) ->post($authUrl);
// POST JSON with body string & special headers // 发起post请求,数据作为body以json串来传递,并且设置header头部参数 $curl = new curlCurl(); $params = [ 'key' => 'value', 'secondKey' => 'secondValue' ]; $response = $curl->setRequestBody(json_encode($params)) ->setHeaders([ 'Content-Type' => 'application/json', 'Content-Length' => strlen(json_encode($params)) ]) ->post($authUrl);
// Avanced POST request with curl options & error handling post请求,设置参数 $curl = new curlCurl(); $params = [ 'key' => 'value', 'secondKey' => 'secondValue' ]; $response = $curl->setRequestBody(json_encode($params)) ->setOption(CURLOPT_ENCODING, 'gzip') ->post($authUrl); // List of status codes here http://en.wikipedia.org/wiki/List_of_HTTP_status_codes switch ($curl->responseCode) { case 'timeout': //timeout error logic here break; case 200: //success logic here break; case 404: //404 Error logic here break; } //list response headers var_dump($curl->responseHeaders);