首页 > 其他分享 >初识 Guzzle

初识 Guzzle

时间:2023-04-21 16:47:18浏览次数:39  
标签:http 初识 client Guzzle POST password response localhost

文档地址
Guzzle是一个使用PHP实现发送HTTP 请求,方便和web service集成的PHP 客户端模拟组件。一句话,它就像一个PHP写的浏览器。当你的服务端程序需要作为客户端来访问其他的service服务时,撸它。

  1. 简单的接口构建query string,POST requests,streaming large uploads/downloads,使用HTTP cookies,上传json data等。
  2. 可以使用相同的接口来发送同步和异步的请求
  3. 使用PSR-7 interface for requests, response,stream.这允许你使用其他的PSR-7兼容的库和Guzzle一起工作
  4. 将底层的HTTP传输层抽象屏蔽,允许你编写环境和传输协议无关的代码,即:再也没有对cURL,PHP streams, sockets,或者non-blocking event loops强依赖的代码
  5. 中间件系统允许你增强你的客户端行为

POST/GET请求

	发送请求前,我们需要实例化本地下载的guzzle
	use GuzzleHttp\Client;

	$client = new Client([
	    //跟域名
	    'base_uri' => 'http://localhost/test',
	    // 超时,可设置可不设置
	    'timeout'  => 2.0,
	]);
	post请求
	$response = $client->request('POST', 'http://localhost/post', [
	    'form_params' => [
	        'username' => 'webben',
	        'password' => '123456',
	        'multiple' => [
	            'row1' => 'hello'
	       	 ]
	   	 ]
		]);
	get请求
	$response = $client->request('POST', 'http://localhost/post', [
		    'query' => [
		        'username' => 'webben',
		        'password' => '123456',
		    ]
		]);
	或者
	$response = $client->POST/GET('http://localhost/post', [
		    'form_params' => [
		        'username' => 'webben',
		        'password' => '123456',
		        'multiple' => [
		            'row1' => 'hello'
		        ]
		    ]
		]);

自定义header

        $client = new Client([
		    //域名或者访问的api接口地址
		    'base_uri' => 'http://localhost/test',
		    // 超时,可设置可不设置
		    'timeout'  => 2.0,
		]);
        // $api可以为空,一般为api接口后缀,也可以直接写到上面的base_uri里面,
        $response = $client->request('POST/GET', '$api', [
		'headers' => [
       		 'name' => 'info'
   		 ],
	    'query' => [
	        'username' => 'webben',
	        'password' => '123456',
	    ]
	]);

        cookie访问和自定义header类似,只是把headers这个数组更换为 'cookies' => $cookieInfo

查看返回状态和信息

        $code = $response->getStatusCode(); // 200
        $reason = $response->getReasonPhrase(); // OK
        echo $response->getBody();

标签:http,初识,client,Guzzle,POST,password,response,localhost
From: https://www.cnblogs.com/program01/p/17340920.html

相关文章

  • JDBC初识
    jdbc连接DriverManager驱动程序管理器是负责管理驱动程序的,驱动注册以后,会保存在DriverManager中的已注册列表中后续的处理就可以对这个列表进行操作.注册驱动方式1.DriverManager.registerDriver();2.写代码实现Class.forName("com.mysql.jdbc.Driver");利用反射机制3.......
  • C++黑马程序员——P185-188. STL初识
    P185.STL初识——STL的基本概念P186.STL初识——vector存放内置数据类型P187.STL初识——vector存放自定义数据类型P188.STL初识——容器嵌套容器P185.STL的基本概念STL,StandardTemplateLibrary,标准模板库STL:为了提高代码的复用性,提供一套标准的数据结构和算法STL......
  • 03-初识HTML
    title:03-初识HTMLpublish:true编辑器相关前端开发的编辑器软件,我首先推荐VSCode,其次推荐SublimeText。有人说WebStorm也不错?但真实情况是,自从VSCode问世之后,用WebStorm的人越来越少了。PS:文件的后缀名不能决定文件格式,只能决定打开文件打开的方式。VSCode的......
  • Wire Shark 初识
    介绍  ......
  • 初识vue3
    定义Vue是一款Javascript框架,基于前端三大件,提供了具有组件化,声明式,渐进式的特点的编程模型。核心功能1.声明式渲染2.响应式组件之单文件组件Vue最为核心的组成部分便是单文件组件,文件结尾为*.vue宏观的逻辑是这样的:*.vue创建组件->.js文件中将组件实例化生成一个应用实......
  • 初识Cypress
    初识Cypress框架简介一款基于Node.js的web自动化测试框架为什么是Cypress新使用的语言更加贴近前端-->javascript、typescript为主可以覆盖单元、接口、ui自动化测试环境准备Node.js设置全局node--->在node安装路径下创建node_global--->输入:npmconfigsetprefix......
  • 初识linux 下
    tail 查看文件尾部内容  参数,Linux路径,表示被跟踪的文件路径选项,-f,表示持续跟踪选项,-num,表示,查看尾部多少行,不填默认10行查看系统文件默认10行  2.vi\vim编辑器介绍vi\vim是Linux中最经典的文本编辑器同图形化界面中的文本编辑器一样,vi是命令行下对文本文件进......
  • 初识Linux shell
    初识Linuxshell1.Linux内核的组成Linux系统的核心是内核。内核控制着计算机系统的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。1.1系统内存管理​ 操作系统内核的主要功能之一是内存管理。​ 内核不仅管理服务器上的可用物理内存,还可以创建并管理虚拟内存(实际并......
  • jvm 初识
    总结jvm是一套规范,只要实现了相关规定就可以视为是一个jvm,jdk的是hotSpot,不同jdk版本的jvm也有细微差异jvm不仅可以作为java的运行环境,还能作为别的语言的运行环境,比如kotlin、groovy等java能跨平台是因为不同平台都有对应的jvm,jvm能把同样的java文件生成......
  • 初识爬虫
    初识爬虫一、预备知识协议:就是两个计算机之间为了能够流畅的进行沟通而设置的一个君子协定,常见的协议有TCP/IP,SOAP协议,HTTP协议,SMTP协议等等。HTTP协议,中文名为“超文本传输协议”,是用万维网(WWW)服务器传输超文本到本地浏览器的传送协议。1、请求1请求行->请求方式(get/post......