1. 程式人生 > >PHP的HTTP客戶端:Guzzle的簡單使用

PHP的HTTP客戶端:Guzzle的簡單使用

首先來一段官方文件對Guzzle的介紹:

 然後cd到網站根目錄,執行Composer命令下載Guzzle:(Linux環境)

composer require guzzlehttp/guzzle

下載完成後會生成一個vender資料夾:

在vender同級目錄新建了一個guzzle.php來寫例子。

【GET請求】

<?php 
    require './vendor/autoload.php';

    //例項化客戶端
    $client = new GuzzleHttp\Client();
 
    //構造url
    $url = 'https://www.baidu.com';

    //get請求
    $res = $client->request('GET', $url);

    //返回狀態碼
    echo $res->getStatusCode();

    //連貫操作
    //$res = $client->request('GET', $url)->getBody()->getContents();
 ?>

【POST請求】

<?php 
    require './vendor/autoload.php';

    //例項化客戶端
    $client = new GuzzleHttp\Client(); 

    //構造url
    $url = 'https://www.baidu.com';

    //post請求
    $res = $client->request('POST', $url, [
        'form_params' => [
            'name'=>'lws',
            'sex'=>'nan'
        ]
    ]);

    //返回狀態碼
    echo $res->getStatusCode();
?>

【POST檔案上傳】

<?php 
    require './vendor/autoload.php';

    //例項化客戶端
    $client = new GuzzleHttp\Client(); 

    //構造url
    $url = 'https://www.baidu.com';

    //post請求
    $res = $client->request('POST', $url, [
        'multipart' => [
            [
        	'name'=>'name',
                'contents'=>'lws'
            ],
            [
        	'name'=>'sex',
                'contents'=>'nan'
            ],
            [
        	'name'=>'tupian',
                'contents'=>file_get_contents('1.jpg'),
                'filename'=>'lws.jpg'
            ]
        ]
    ]);

    //返回狀態碼
    echo $res->getStatusCode();
?>

【設定代理IP】

<?php 
    require './vendor/autoload.php';

    //例項化客戶端
    $client = new GuzzleHttp\Client(); 

    //構造url
    $url = 'https://www.baidu.com';

    //設定代理請求
    $res = $client->request('GET', $url, [
        'proxy' => '111.22.33.44:6666'
    ]);

    //返回狀態碼
    echo $res->getStatusCode();
?>

【模擬請求頭】

<?php 
    require './vendor/autoload.php';

    //例項化客戶端
    $client = new GuzzleHttp\Client(['headers'=>['referer'=>'https://www.baidu,com']]); 

    //構造url
    $url = 'https://www.baidu.com';

    //設定代理請求
    $res = $client->request('GET', $url);

    //返回狀態碼
    echo $res->getStatusCode();
?>

【記錄Cookie】

<?php 
    require './vendor/autoload.php';

    //例項化客戶端
    $client = new GuzzleHttp\Client(['cookie'=>true]); 

    //構造url
    $url = 'https://www.baidu.com';

    //設定代理請求
    $res = $client->request('GET', $url);

    //返回狀態碼
    echo $res->getStatusCode();
?>