php - 如何使用 PHP Curl 或 Guzzel 客户端使用动态用户代理标头
问题描述
我是 PHP 新手,正在尝试调用 REST 服务。我可以在 PHP 中使用 Curl 或 Guzzle Client 来做到这一点。后来我从 Mozilla 和 Chrome 浏览器调用它。
问题是 Guzzle 和 Curl 没有将实际的 User-Agent 标头作为请求标头转发到后端服务。
默认的 GuzzleUser-Agent header is Guzzle/ver curl/ver PHP/ver
我知道我们可以在 Curl 和 Guzzle 中添加自定义/硬编码的标题。但我不想硬编码。
<?php
require './vendor/autoload.php';
$client = new GuzzleHttp\Client();
$res = $client->request('GET', 'http://sample.com');
$data = json_decode($res->getBody(), true);
//echo $res->getBody()
?>
<html>
<body>
<p>Body is <?php echo $res->getBody() ?> </p>
</body>
</html>
当我从 Chrome/Mozilla/Mobile/Safari 调用 PHP 服务时,我希望将相应的user-agent
标头作为请求标头发送到后端服务。
如果有办法以任何方式做到这一点?
解决方案
PHP 有一个内置数组,用于存储来自请求的数据 - $_SERVER['HTTP_USER_AGENT']
.
然后,您可以使用该选项设置user-agent
guzzle 使用。headers
$client->request('GET', '/get', [
'headers' => [
'User-Agent' => $_SERVER['HTTP_USER_AGENT'],
]
]);
推荐阅读
- spring - 如何使用 LDAP 和基于角色的数据库授予权限来实现 Spring Security?
- python - ndarrays 的滚动窗口
- r - 为 R 中的缺失值填充零
- ruby-on-rails - 如何使用rails遍历引导卡
- javascript - 如何使用计划 HTML 访问 JSP 中的隐藏值
- javascript - 当我导航回页面时,如何阻止 Radlistview 重新加载列表
- steam - Steam Web API 有没有一种方法可以获取用户好友列表以及他们的头像和 Steam 名称?
- reactjs - 保存传奇中未引发异常
- c++ - 如何在处理地图的模板中声明键和值类型的变量?
- javascript - 使用 Selenium 从 JavaScript 返回值到 Python