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