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

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

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

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

composer require guzzlehttp/guzzle

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

在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 socket用法总结》、《php字符串(string)用法总结》、《PHP数学运算技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP网络编程技巧总结》

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

(0)

相关推荐

  • 在PHP中实现使用Guzzle执行POST和GET请求

    以往在项目中要用到第三方接口时会用到封装好的curl执行请求,现在有了更好的解决方案--Guzzle. 下面是官方介绍: Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上. 接口简单:构建查询语句.POST请求.分流上传下载大文件.使用HTTP cookies.上传JSON数据等等. 发送同步或异步的请求均使用相同的接口. 使用PSR-7接口来请求.响应.分流,允许你使用其他兼容的PSR-7类库与Guzzle共同开发. 抽象了底层的HTTP传输,允许你

  • PHP 使用header函数设置HTTP头的示例解析 表头

    如下所示: 复制代码 代码如下: //定义编码  header( 'Content-Type:text/html;charset=utf-8 '); //Atom  header('Content-type: application/atom+xml'); //CSS  header('Content-type: text/css'); //Javascript  header('Content-type: text/javascript'); //JPEG Image  header('Con

  • 使用Zttp简化Guzzle 调用

    Zttp 是 Adam Wathan 为了让代码更富表现力以及简化常见用例而写的一个 Guzzle 的封装. 这是使用 Zttp 去 Post 一个自定义头部内容请求的一个例子: $response = Zttp::withHeaders(['Fancy' => 'Pants'])->post($url, [ 'foo' => 'bar', 'baz' => 'qux', ]); $response->json(); 如果用一个与 Guzzle 差不多的东西写这个请求的话,大

  • php之curl实现http与https请求的方法

    本文实例讲述了php之curl实现http与https请求的方法,分享给大家供大家参考.具体如下: 通常来说,php的curl函数组可以帮助我们把机器伪装成人的行为来抓取网站,下面来分享两个例子,一个是访问http网页,一个访问https网页,一起来看一下. 每次要使用curl的时候,总要查一堆资料. 现在将常用的几句保存下来,省的每次都去谷歌. 常规curl请求: 复制代码 代码如下: $url = 'http://www.jb51.net'; $curl = curl_init(); cur

  • PHP获取http请求的头信息实现步骤

    PHP手册提供了现成的函数: getallheaders (PHP 4, PHP 5) getallheaders - Fetch all HTTP request headers 说明 array getallheaders ( void ) Fetches all HTTP headers from the current request. This function is an alias for apache_request_headers(). Please read theapach

  • php抓取https的内容的代码

    直接用file_get_contents,会报错: 复制代码 代码如下: $url = (https://xxx.com"); file_get_contents($url); 错误: Warning: file_get_contents(https://xxx.com) [function.file-get-contents]: failed to open stream: No such file or directory in D:wampwwwgrabber_clientindex.ph

  • php中调用其他系统http接口的方法说明

    使用函数:  file_get_contents($url); 传入接口url及其参数:如 $url="http://192.168.1.1/test.jsp?id=1&type=2"; $ret=file_get_contents($url);

  • PHP实现取得HTTP请求的原文

    本文实例讲述了PHP实现取得HTTP请求的原文的方法,具体步骤如下: 1. 取得请求行:Method.URI.协议 可以从超级变量$_SERVER中获得,三个变量的值如下: $_SERVER['REQUEST_METHOD'].' '.$_SERVER['REQUEST_URI'].' '.$_SERVER['SERVER_PROTOCOL']."\r\n"; 2. 取得所有Header PHP有个内置函数getallheader(),是apache_request_headers()

  • php curl 获取https请求的2种方法

    今天一个同事反映,使用curl发起https请求的时候报错:"SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed" 很明显,验证证书的时候出现了问题. 使用curl如果想发起的https请求正常的话有2种做法: 方法一.设定为不验证证书和host.

  • 在Laravel中使用GuzzleHttp调用第三方服务的API接口代码

    背景:用laravel进行分布式开发,自己写了一个业务系统,还写了一个用户中心和其他的信息中心 现在需要做到前端只需要访问业务系统的API接口也可以获取到其他服务上面的数据 找了很多资料,最后查到了Laravel自带的GuzzleHttp可以达到我的需求 Guzzle中文文档: http://guzzle-cn.readthedocs.io/zh_CN/latest/index.html 引入安装 在composer.json文件的"require"项中加入 "guzzleh

随机推荐