如何避免永久移动文档已移至此处

时间:2015-06-24 10:11:12

标签: php codeigniter curl

我在某个网站,我会调用另一个网站上的API。所以我建立了一个卷曲

$url = ........
$curl_data = array('name'=>$name);
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curl_data);

$output = curl_exec($ch);
$info = curl_getinfo($ch, CURLINFO_HTTP_CODE);

所以当我执行curl时,我打印了值" $ output"我获得永久移动文件已移至此处。这是错误的,因为我会称之为api我会获得价值并在流程开始时返回页面。有人可以帮帮我吗?

一天之后,我决定在调用函数前添加此行:

curl_setopt($ CH,CURLOPT_FOLLOWLOCATION,TRUE);

4 个答案:

答案 0 :(得分:0)

检查URL是否确实抛出错误301(永久移动)。使用fiddler,因为它可以捕获HTTP错误代码。

答案 1 :(得分:0)

请参阅此PHP cURL says Moved Permanently when POSTing to a virtual host

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTREDIR, 3);

答案 2 :(得分:0)

通过添加这一行为我工作

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

答案 3 :(得分:0)

我遇到了同样的问题,您可以通过将 url 前缀从 http 更改为 https(如果是 http 否则将其更改为 http)来解决此问题

问题出在 .htaccess

类似的东西

RewriteRule ............ [R=301,L]