我在某个网站,我会调用另一个网站上的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);
答案 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]