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

Song2939 次浏览0个评论2017年11月01日

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

一、构造请求

Client对象可以接收一个包含参数的数组:

use GuzzleHttp\Client;

$client = new Client([
    // 默认请求的url
    base_uri => https://www.baidu.com/,
    // 默认请求时间,你可以任意设置
    timeout  => 2.0,
]);

二、base_uri详解

基URI用来合并到相关URI,可以是一个字符串或者UriInterface的实例,当提供了相关uri,将合并到基URI,简单的来说,就是一个url链接的拼合,那么我们来看一下例子:

// 我们实现来撞见一个基本的api
$client = new Client([base_uri => https://baidu.com/api/]);
// 这样我们会去请求的url为 https://baidu.com/api/test
$response = $client->request(GET, test);
// 这样我们会去请求的url为 https://baidu.com/root
$response = $client->request(GET, /root);

三、Client对象的方法可以很容易的发送请求

$response = $client->get(http://baidu.com/get);
$response = $client->delete(http://baidu.com/delete);
$response = $client->head(http://baidu.com/get);
$response = $client->options(http://baidu.com/get);
$response = $client->patch(http://baidu.com/patch);
$response = $client->post(http://baidu.com/post);
$response = $client->put(http://baidu.com/put);

你可以创建一个请求,一切就绪后将请求传送给client

<?php
namespace App\Http\Controllers;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;

class TestController extends Controller
{
    public function test()
    {
        $client = new Client([base_uri => https://baidu.com/]);
        $request = new Request(GET, https://baidu.com/);
        $response = $client->send($request, [timeout => 2]);
        dd($response);
}
}

这样,我们可以获取到我们请求返回的Response信息

Client对象为传输请求提供了非常灵活的处理器方式,包括请求参数、每次请求使用的中间件以及传送多个相关请求的基URI。你可以在 Handlers and Middleware 页面找到更多关于中间件的内容。

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文