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 相关文章推荐
PHP系统流量分析的程序
Oct 09 PHP
PHP调用三种数据库的方法(1)
Oct 09 PHP
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
Mar 06 PHP
Phpbean路由转发的php代码
Jan 10 PHP
php下使用strpos需要注意 === 运算符
Jul 17 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 PHP
PHP用户注册邮件激活账户的实现代码
May 31 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
Jul 03 PHP
PHP基于XMLWriter操作xml的方法分析
Jul 17 PHP
PHP模版引擎原理、定义与用法实例
Mar 29 PHP
浅谈PHP之ThinkPHP框架使用详解
Jul 21 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强制下载类型的实现代码
2011/04/21 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
Vue2.0结合webuploader实现文件分片上传功能
2018/03/09 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
Python网络爬虫实例讲解
2016/04/28 Python
Python中的字符串替换操作示例
2016/06/27 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
2017/07/24 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
Python实现画图软件功能方法详解
2020/07/28 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
Python中如何定义一个函数
2016/09/06 面试题
2015年毕业实习工作总结
2014/12/12 职场文书
诚实守信主题班会
2015/08/13 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python
Java基础之线程锁相关知识总结
2021/06/30 Java/Android
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js