PHP Curl扩展Guzzle

简介:

Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上。

特点:

  • 接口简单:构建查询语句、POST请求、分流上传下载大文件、使用HTTP cookies、上传JSON数据等等。
  • 发送同步或异步的请求均使用相同的接口。
  • 使用PSR-7接口来请求、响应、分流,允许你使用其他兼容的PSR-7类库与Guzzle共同开发。
  • 抽象了底层的HTTP传输,允许你改变环境以及其他的代码,如:对cURL与PHP的流或socket并非重度依赖,非阻塞事件循环。
  • 中间件系统允许你创建构成客户端行为。

下载及使用:

推荐使用 Composer 安装Guzzle,Composer是PHP的依赖管理工具,允许你在项目中声明依赖关系,并安装这些依赖。

# 安装 Composer
curl -sS https://getcomposer.org/installer | php

你可以使用composer.phar客户端将Guzzle作为依赖添加到项目:

php composer.phar require guzzlehttp/guzzle:~6.0

发送请求

可以使用Guzzle的 GuzzleHttp\ClientInterface 对象来发送请求。

创建客户端

use GuzzleHttp\Client;

$client = new Client([
    // Base URI is used with relative requests
    'base_uri' => 'http://httpbin.org',
    // You can set any number of default request options.
    'timeout'  => 2.0,
]);

Client对象的方法可以很容易的发送请求:

$response = $client->get('http://httpbin.org/get');
$response = $client->delete('http://httpbin.org/delete');
$response = $client->head('http://httpbin.org/get');
$response = $client->options('http://httpbin.org/get');
$response = $client->patch('http://httpbin.org/patch');
$response = $client->post('http://httpbin.org/post');
$response = $client->put('http://httpbin.org/put');

异步请求:

$promise = $client->getAsync('http://httpbin.org/get');
$promise = $client->deleteAsync('http://httpbin.org/delete');
$promise = $client->headAsync('http://httpbin.org/get');
$promise = $client->optionsAsync('http://httpbin.org/get');
$promise = $client->patchAsync('http://httpbin.org/patch');
$promise = $client->postAsync('http://httpbin.org/post');
$promise = $client->putAsync('http://httpbin.org/put');

带cookie访问的使用示例

use GuzzleHttp\Client;
use GuzzleHttp\Cookie\CookieJar;

$client = new \GuzzleHttp\Client([
	'cookies' => true,
	'verify' => false //关闭验证
]);

$cookieJar = CookieJar::fromArray([
      'cookie参数' => 'value',
      'cookie参数' => 'value',
      'cookie参数' => 'value',
      'cookie参数' => 'value',
      'cookie参数' => 'value',
], 'www.xxx.com');

$res = $client->request('GET', 'https://www.xxx.com', [
    'cookies' => $cookieJar,
])->getBody()->getContents();

官方手册 :   点击访问

-End-

风影OvO

风影OvO, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA 4.0协议进行授权 | 转载请注明原文链接

1 Comment

  • 哇哈哈哈

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐