我在使用cURL发送PHP Post请求时遇到了一些麻烦。
代码应该做什么:使用发布数据转到http://www.example.com/index.php。
代码的作用:它在我运行脚本的页面内加载www.example.com。如果我尝试使用该网站,我将收到404错误。
这是我的代码:
$url = 'https://www.example.com/index.php';
$fields = array(
'info1'=>'par1',
'info2'=>'par2'
);
$postvars='';
$sep='';
foreach($fields as $key=>$value)
{
$postvars.= $sep.urlencode($key).'='.urlencode($value);
$sep='&';
}
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
$result = curl_exec($ch);
curl_close($ch);
答案 0 :(得分:0)
试试这个:
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//Added this
$result = curl_exec($ch);
curl_close($ch);
答案 1 :(得分:0)
每次尝试从YOUR
网站打开不存在的链接时,您都会看到404。
这是因为您的浏览器尝试打开yourwebsite.com/nicelink.php
而不是example.com/nicelink.php
为什么会这样?
让我们看看你做了什么:
1)您打开yourwebsite.com/script.php
2)脚本从example.com加载数据,并在yourwebsite.com
上下文中将其输出到您的浏览器
3)<a href="nicelink.php">nice link</a>
的所有链接与您的浏览器当前打开的地址yourwebsite.com
无关!
$postvars = http_build_query( $fields );
而不是:
$postvars='';
$sep='';
foreach($fields as $key=>$value)
{
$postvars.= $sep.urlencode($key).'='.urlencode($value);
$sep='&';
}