添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

POST/表单请求

除了使用 body 参数来指定请求数据外,Guzzle为发送POST数据提供了有用的方法。

发送表单字段

发送 application/x-www-form-urlencoded POST请求需要你传入 form_params 数组参数,数组内指定POST的字段。

$response = $client->request('POST', 'http://httpbin.org/post', [
    'form_params' => [
        'field_name' => 'abc',
        'other_field' => '123',
        'nested_field' => [
            'nested' => 'hello'

发送表单文件

你可以通过使用 multipart 请求参数来发送表单(表单enctype属性需要设置 multipart/form-data )文件, 该参数接收一个包含多个关联数组的数组,每个关联数组包含一下键名:

Psr\Http\Message\StreamInterface 的实例。

$response = $client->request('POST', 'http://httpbin.org/post', [
    'multipart' => [
            'name'     => 'field_name',
            'contents' => 'abc'
            'name'     => 'file_name',
            'contents' => fopen('/path/to/file', 'r')
            'name'     => 'other_file',
            'contents' => 'hello',
            'filename' => 'filename.txt',
            'headers'  => [
                'X-Foo' => 'this is an extra header to include'


演示案例

上传多图案例

$images = $request->file('images');
    foreach ($images as $image)
        $body[] = [
            'Content-type' => 'multipart/form-data',
            'name'         => $image->getClientOriginalName(),
            'contents'     => fopen($image->getRealPath(), 'r')
    $data = $request->all();
    $client = new Client();
    $response = $client->request('POST', $url, [
        'multipart' => $body,
        'json'      => $data
                                        
  • guzzle文档
  • laravel Htmldom拓展包,laravel爬虫中的html代码解析神器

    在我们开发和编写爬虫的过程中,常常需要在网页中提取关键字,提取我们需要的内容,python中大家都是用beautifulsoup,简直是神器,有了它我们可以快速的提取到网页中我们需要的内容,免去我们慢慢的编写正则表达式;其实,在PHP中,也有simple_html_dom能帮助我们 2017-12-26 07:28:15

    [ laravel爬虫实战--进阶篇 ] guzzle异常处理与环境变量

    一、异常处理请求传输过程中出现的错误Guzzle将会抛出异常。在发送网络错误(连接超时、DNS错误等)时,将会抛出GuzzleHttp\Exception\RequestException异常。该异常继承自GuzzleHttp\Exception\Trans 2017-11-15 14:51:54

    [ laravel爬虫实战--进阶篇 ] guzzle异常处理与环境变量

    一、异常处理请求传输过程中出现的错误Guzzle将会抛出异常。在发送网络错误(连接超时、DNS错误等)时,将会抛出GuzzleHttp\Exception\RequestException异常。该异常继承自GuzzleHttp\Exception\Trans 2017-11-08 16:15:44

    [ laravel爬虫实战--进阶篇 ] guzzle使用cookies实现模拟登录站点爬取网页内容

    在我们使用爬虫的过程中,经常需要模拟登录后台,获取更多数据,我们怎么去模拟登录呢?其实就是在登录的时候记录住登录cookie,每次请求带上cookie,实现模拟登录。Guzzle可以使用cookies请求参数为你维护一个cookie会话,当发送一个请求时,cooki 2017-11-03 15:39:12

    [ laravel爬虫实战--基础篇 ] guzzle带参数请求

    一、查询字符串参数,GET请求你可以有多种方式来提供请求的查询字符串,你可以在请求的URI中设置查询字符串:$response=$client-request('GET','http://baidu.com?foo=bar');你也可以使用 2017-11-03 15:32:17

    [ laravel爬虫实战--基础篇 ] guzzle使用响应,获取header以及页面代码

    前面的例子里,我们取到了$response变量,或者从Promise得到了响应,Response对象实现了一个PSR-7接口Psr\Http\Message\ResponseInterface;包含了很多有用的信息,但是比较乱,那么我们怎么去获取我们想要的信息呢?你 2017-11-01 15:19:39

    [ laravel爬虫实战--基础篇 ] guzzle发送并发请求

    一般我们的请求都是阻塞的,如果需要同时进行多请求的话,就得需要使用并发请求了。Guzzle你可以使用Promise和异步请求来同时发送多个请求:php$client=newClient();//创建一个请求列表$promises=['b 2017-11-01 15:10:28

    [ laravel爬虫实战--基础篇 ] guzzle发送异步请求

    同步请求是指,发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。异步请求是指,发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。我们可以使用Client提供的方法来创建异步请求,这样我们就不用等待返回就继续执行后续的操作:$promis 2017-11-01 15:00:55

    [ laravel爬虫实战--基础篇 ] guzzle的基本使用以及发送请求

    laravel使用Guzzle非常方便,只需要引入Guzzle即可,我们今天主要来构造一个请求,以及了解Guzzle的基本使用,如果你还没有安装Guzzle,可以参考[[laravel爬虫实战--基础篇]guzzle描述与安装](https://phpartisan.cn 2017-11-01 14:49:15

    [ laravel爬虫实战--基础篇 ] guzzle描述与安装

    为什么所以Guzzle作为爬虫工具?Guzzle库是一套强大的PHPHTTP请求套件。后续我会介绍大多数他的使用方法以及在爬虫中的使用。一、guzzle的安装推荐使用Composer安装Guzzle,Composer是PHP的依赖管理工具,允许你在项目 2017-11-01 14:31:33