yii2.0 curl的使用

yii2 curl的使用办法

get:

use linslin\yii2\curl;
public function actionCurl($value =0)
{
    $url = 'http://yandex.ru/search/';
    $curl = new curl\Curl();
    //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 curl\Curl();
$response = $curl->setPostParams([
        'key' => 'value',
        'secondKey' => 'secondValue'
     ])
     ->post($authUrl);
// POST RAW JSON
// 发起post请求,数据为json格式
$curl = new curl\Curl();
$response = $curl->setRawPostData(
     json_encode([
        'key' => 'value',
        'secondKey' => 'secondValue'
     ]))
     ->post($authUrl);
// POST RAW XML
/ 发起post请求,数据为xml格式
$curl = new curl\Curl();
$response = $curl->setRawPostData('<?xml version="1.0" encoding="UTF-8"?><someNode>Test</someNode>')
     ->post($authUrl);
// POST with special headers
// 发起post请求,并且设置header头部参数
$curl = new curl\Curl();
$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 curl\Curl();

$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 curl\Curl();

$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);

 

posted @ 2017-07-11 09:16  py卡卡  阅读(6657)  评论(0编辑  收藏  举报