PHP的HTTP客戶端:Guzzle的簡單使用
阿新 • • 發佈:2018-12-05
首先來一段官方文件對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();
?>