PHP的HTTP客户端Guzzle简单使用方法分析


Posted in PHP onOctober 30, 2019

本文实例讲述了PHP的HTTP客户端Guzzle简单使用方法。分享给大家供大家参考,具体如下:

首先来一段官方文档对Guzzle的介绍:

PHP的HTTP客户端Guzzle简单使用方法分析

然后cd到网站根目录,执行Composer命令下载Guzzle:(Linux环境)

composer require guzzlehttp/guzzle

下载完成后会生成一个vender文件夹:

PHP的HTTP客户端Guzzle简单使用方法分析

在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();
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
967 个函式
Oct 09 PHP
PHP isset()与empty()的使用区别详解
Aug 29 PHP
PHP中用正则表达式清除字符串的空白
Jan 17 PHP
php中的Base62类(适用于数值转字符串)
Aug 12 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
Smarty实现页面静态化(生成HTML)的方法
May 23 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
Aug 11 PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
Oct 30 #PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 30 #PHP
微信小程序发送订阅消息的方法(php 为例)
Oct 30 #PHP
php上传后台无法收到数据解决方法
Oct 28 #PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 #PHP
PHP接入微信H5支付的方法示例
Oct 28 #PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 #PHP
You might like
解析php开发中的中文编码问题
2013/08/08 PHP
PHP简单实现文本计数器的方法
2016/04/28 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
ext for eclipse插件安装方法
2008/04/27 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
js接收并转化Java中的数组对象的方法
2016/08/11 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
JavaScript数组去重实现方法小结
2020/01/17 Javascript
Vue实现简单的跑马灯
2020/05/25 Javascript
利用Vue实现简易播放器的完整代码
2020/12/30 Vue.js
[02:41]DOTA2英雄基础教程 冥魂大帝
2014/01/16 DOTA
Python实现数据库编程方法详解
2015/06/09 Python
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
通过实例了解python property属性
2019/11/01 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
国际书籍零售商:Wordery
2017/11/01 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
公共艺术专业自荐信
2014/09/01 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js