如何使用cURL在PHP中使用GET和POST参数发出请求?

如何使用cURL在PHP中使用GET和POST参数发出请求?,第1张

概述其他人已经问过如何从perl, java,bash等做这个,但是我需要用 PHP来做,而且我没有看到任何已经被问及与PHP有关的问题(或答案). 我的代码: $ch = curl_init($url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POST, true); 其他人已经问过如何从perl,java,bash等做这个,但是我需要用 PHP来做,而且我没有看到任何已经被问及与PHP有关的问题(或答案).

我的代码:

$ch = curl_init($url);    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);    curl_setopt($ch,CURLOPT_POST,true);    curl_setopt($ch,CURLOPT_FolLOWLOCATION,CURLOPT_POSTFIELDS,$fIElds);    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);    $result = curl_exec($ch);

这不起作用.目标站点有print_r($_ GET); print_r($_ POST);,所以当我检查$result时,我应该能够看到正在发送的字段.但是,$_POST数组为空 – 我只看到get变量.如果我从$url中删除?…查询字符串,则会正确填充POST数组.但现在我没有GET参数.我该怎么做呢?

我的具体情况是,我需要发送太多数据以使其适合查询字符串,但我无法将其作为POST发送,因为我要提交的网站是根据变量选择发布数据的处理程序在GET字符串中.我可以尝试将其更改,但理想情况下,我希望能够在同一查询中发送get和post数据.

解决方法
# GET query goes in the URL you're hitting$ch = curl_init('http://example.com/script.PHP?query=parameter');# POST fIElds go here.curl_setopt($ch,array('post' => 'parameter','values' => 'go here'));

如果执行POST,PHP本身不会决定忽略GET参数.无论用什么类型的http动词加载页面,它都会填充$_GET – 如果URL中有查询参数,它们将进入$_GET.

如果你没有得到$_POST和$_GET,那么有些东西会导致重定向或以其他方式杀死某些内容.例如你检查$_SERVER [‘REQUEST_METHOD’]看你的代码是否真的作为POST运行?如果没有实际执行帖子,PHP将不会填充$_POST.您可能已向服务器发送了一个帖子,但这并不意味着您的代码实际上将在POST机制下执行 – 例如mod_rewrite重定向.

由于您已启用FolLOW_REDIRECT,因此您只需确定在代码执行时实际收到帖子.

总结

以上是内存溢出为你收集整理的如何使用cURL在PHP中使用GET和POST参数发出请求?全部内容,希望文章能够帮你解决如何使用cURL在PHP中使用GET和POST参数发出请求?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1029555.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存