PHP的HTTP客户端:Guzzle的简单使用

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的HTTP客户端:Guzzle的简单使用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111932.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月12日 下午8:00
下一篇 2022年2月12日 下午9:00


相关推荐

  • 级数敛散性

    级数敛散性

    2021年9月16日
    43
  • MySQL数据查询之单表查询

    单表查询简单查询-创建表DROPTABLEIFEXISTS`person`;CREATETABLE`person`(`id`int(11)NOTNULLAUTO_IN

    2022年3月29日
    49
  • java并发 使用ScheduledExecutor的温室控制器–thinking in java 21.7.5

    java并发 使用ScheduledExecutor的温室控制器–thinking in java 21.7.5

    2022年2月3日
    40
  • 数仓分层介绍

    数仓分层介绍文章目录数仓分层的意义是什么 常见的数据分层 ODS 层 源数据层 DW 层 数据仓库层 也叫作集团数据中心 DA app 层 数据应用层更加细分的数仓分层方案 1ODS 数据源 2DW 数据仓库 2 1DWD 明细层 2 2DWB 基础数据层 2 3DWS 服务数据层 3DM 数据集市 4RPT 报表应用数仓分层的意义是什么 作为一名数据的规划者 我们肯定希望自己的数据能够有秩序地流转 数据的整个生命周期能够清晰明确被设计者和使用者感知到 直观来讲就是如图这般层次清晰 依赖关系直观 但是 大多数情况下

    2026年3月18日
    1
  • IQA+不懂︱图像清洗:图像质量评估(评估指标、传统检测方法)

    IQA+不懂︱图像清洗:图像质量评估(评估指标、传统检测方法)深度学习技术如火如荼 但是训练的图像集都是标注好 质量高的 那么笔者对如何进行图像清洗表示好奇 难道只有让工人肉眼看吗 一些传统的 IQA 都是基于图像本身质量去评价 那么我想知道 之外的图像信息质量该如何评估 现在还不知道除了肉眼之外的好办法 只能先来列举一下传统 IQA 的一些评估指标 1 MOS DMOS 图像质量评价可以分为主观评价方法和客观评价方法 主观评价由观察者对图像质量进行主观评分

    2026年1月21日
    1
  • ashx 文件怎么用

    ashx 文件怎么用本文导读 ashx 是什么文件 如何创建 ashx 文件用于写 webhandler 的 其实就是带 HTML 和 C 的混合文件 ashx 文件类似于 aspx 文件 可以通过它来调用 HttpHandler 类 从而免去了普通 aspx 页面的控件解析以及页面处理的过程 一 ashx 文件的添加打开你的 ASP NETwebsite 右击项目选择 AddNewItem 将显示

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号