php-在Goutte中发送具有相同参数名称的发布请求
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-在Goutte中发送具有相同参数名称的发布请求,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含966字,纯文字阅读大概需要2分钟。
内容图文
![php-在Goutte中发送具有相同参数名称的发布请求](/upload/InfoBanner/zyjiaocheng/679/10b8e8b7e5584fcdbbf4e4b3c7bd8e54.jpg)
我要抓取的一个网站的两个参数使用相同的名称,因此我想执行以下操作:
$params = array('dates' => '20140414', 'o' => '192382', 'o' => '213003' etc...);
$crawler = $client->request('POST', $url, $params);
但是,由于不可能在数组中拥有两个相同的键,所以我遇到了问题.在Goutte(Symfony的BrowserKit)中可以提出这样的请求吗?这是我要从Chrome的“网络”标签中发出的确切请求的打印屏幕.
解决方法:
为了使用Goutte(或Guzzle,它具有相同的问题)执行此操作,必须构造自己的表单POST请求,而不要使用$formParameters.这需要手动设置Content-Type并将参数作为请求正文发送.
假设您要发送以下参数:
['foo' => 1, 'bar' => 2, 'bar'=> 3, 'baz' => 4]
这就是你的代码看起来像的
$queryParams = [
'foo=1',
'bar=2',
'bar=3',
'baz=4',
];
$content = implode('&', $queryParams);
//This produces foo=1&bar=2&bar=3&baz=4
/** @var Goutte\Client $client */
$crawler = $client->request('POST', 'http://example.com/post.php', [], [], ['HTTP_CONTENT_TYPE' => 'application/x-www-form-urlencoded'], $content);
请注意,参数和值必须使用urlencoded.
内容总结
以上是互联网集市为您收集整理的php-在Goutte中发送具有相同参数名称的发布请求全部内容,希望文章能够帮你解决php-在Goutte中发送具有相同参数名称的发布请求所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。