我第一次对这个问题实际注册时已经非常绝望了。我正在尝试使用curl编写web服务,以便其他人可以将一些信息上传到我的服务器。我对我的“客户”的代码没有任何影响,因此他们调用的网址必须是http://..../update
然而,这导致“301 - 永久移动”错误,直到我在末尾添加/。如果不是因为我无法更改网址,那么添加/将是一个简单的解决方案。换句话说,它必须在没有/
的情况下工作我的支持团队建议我尝试在我的.htaccess中进行重定向,然后我就这样做了,最后添加了/,但我仍然得到301.这是在.htaccess
RewriteEngine on
RewriteBase /
RewriteRule ^update$ update/ [R]
所以,这是调用的代码:
error_reporting(E_ALL);
$ch=curl_init();
$url="http://www.virtualairlines.eu/update";
$cleaned_params='(some xml)';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $cleaned_params);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt ($ch, CURLOPT_URL, $url);
$ret = curl_exec($ch);
echo $ret;
正如您所见,我尝试使用followlocation但删除了发布的数据,并向我显示一个空页。
这是接收它的代码:(更新文件夹中的index.php)
$data= urldecode(file_get_contents('php://input'));
$xml = new SimpleXMLElement($data);
(还有一些代码,但不相关)
一旦我把决赛/放在上面的网址中,一切正常。 同样,除了在我自己的机器上测试东西之外,我对发送端没有任何影响。 任何人?