php - 如何在 Guzzle Http 客户端中使用 Accept-Encoding
问题描述
我使用这个 php 库http://docs.guzzlephp.org/en/stable/overview.html从远程站点获取内容。(第 6 版)
我正在随机测试两个网址。
代码:
$url = 'https://www.asos.com/jack-jones/jack-jones-leather-chelsea-boot-in-black/prd/12700615?clr=pirate-black&colourWayId=16521640&SearchQuery=&cid=57743';
$request = $this->client->request('GET', $url, [
'debug' => true,
'headers' => [
'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
'Accept' => '*/*',
'Accept-Encoding' => 'gzip, deflate'
]
]);
我在 url 1 中使用 Accept-Encoding。如果我不使用 Accept-Encoding,它将无法工作。
代码:
$url = 'https://www.gap.com/browse/product.do?pid=440775002&cid=5225&pcid=5225&vid=1&grid=pds_0_190_1&cpos=0&cexp=1321&cid=CategoryIDs%3D5225&cvar=9527&ctype=Listing&cpid=res19102206328645959183874#pdp-page-content';
$request = $this->client->request('GET', $url, [
'debug' => true,
'headers' => [
'User-Agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
'Accept' => '*/*'
]
]);
我没有在 url 2 中使用 Accept-Encoding。如果我使用 Accept-Encoding,它将无法正常工作。
两种代码都可以正常工作,但我不知道如何决定何时放置 Accept-Encoding。
你不知道怎么做?
还是有更好的解决方案来下载网站内容?
解决方案
推荐阅读
- android - 来自多个 ArrayLists 的数据未正确推送
- php - php preg_match - 搜索特定数字/字符代码
- python-3.x - 如何在不中断或暂停 python 中的其他代码的情况下随机播放音乐文件夹?
- javascript - 为什么、何时以及如何关闭 writestream?
- angularjs - angularjs中输入文本的条件模式
- php - 如何在 Magento 2 中使支付插件安全
- r - 通过在 R 中的三角矩阵中使用 for 循环来获取 NaN 而不是值
- function - 为什么我的函数在添加导入时会变成一个模块?
- ruby-on-rails - STI 多态 has_many 使用错误的类型值
- flutter - 调用 Navigator Pop 或 Push 时触发 Flutter Stream Builder