我需要将一些数据发布到我服务器上的脚本中。我使用curl和详细的错误报告。有没有人知道为什么这不起作用?
谢谢,
发布脚本
function makePost($postvars, $count) {
$url = 'http://servername.something.org/php/callback-f.php';
$ch = curl_init();
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
$result = curl_exec($ch);
curl_close($ch);
}
发布的脚本包含以下行:
<?php log_error("success",ERROR_LOG_TO_STDERR); ?>
我的帖子中有一个字符串,如下所示:
surname=smth&address1=No+Value&this=that
我得到的结果是:
Connected to myserver.org port 80
> POST /php/callback-f.php HTTP/1.1
Host: myserver.org
Pragma: no-cache
Accept: */*
Content-Length: 1510
Content-Type: application/x-www-form-urlencoded
< HTTP/1.1 301 Moved Permanently
< Location: https://myserver/php/callback-f.php
< Content-Length: 0
< Date: Wed, 16 Nov 2011 16:21:23 GMT
< Server: lighttpd/1.4.28
* Connection #0 to host left intact
* Closing connection #0
答案 0 :(得分:1)
你能尝试使用:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
答案 1 :(得分:1)
您收到301错误。您尝试的网址为http://servername.something.org
,301表示该网页位于https://myserver
(请注意https协议)。
在没有用户同意的情况下,301错误也不应该在POST上重定向。