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中几种常见安全设置详解
Apr 06 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
Jun 10 PHP
php中session过期时间设置及session回收机制介绍
May 05 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
Jul 25 PHP
PHP Streams(流)详细介绍及使用
May 12 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
Aug 01 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 PHP
PHP多种序列化/反序列化的方法详解
Jun 23 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
Yii框架连表查询操作示例
Sep 06 PHP
php获取小程序码的实现代码(B类接口)
Jun 13 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
同台服务器使用缓存APC效率高于Memcached的演示代码
2010/02/16 PHP
php Rename 更改文件、文件夹名称
2011/05/24 PHP
php中动态调用函数的方法
2015/03/16 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
简单的pgsql pdo php操作类实现代码
2016/08/25 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
JS 建立对象的方法
2007/04/21 Javascript
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
Vuex新手的理解与使用详解
2019/05/31 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
python的turtle库使用详解
2019/05/10 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
python 求10个数的平均数实例
2019/12/16 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
python对一个数向上取整的实例方法
2020/06/18 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
心得体会的写法
2014/09/05 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
同意转租证明
2015/06/24 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
Mysql数据库group by原理详解
2022/07/07 MySQL