PHP cURL请求返回false的同一服务器

时间:2013-06-27 13:38:01

标签: php curl

我已经搜索了这个问题的答案,但是找不到任何东西......

我们有一台服务器,我们有一个带有API的PHP服务。

我们最近编写了一个与API交互的PHP应用程序。当它上线时,API和应用程序将在同一台服务器上。

但是,当它们位于同一服务器上时,从应用程序到API的cURL请求始终返回false。我确信这必须与服务器路由请求的方式有关。有没有办法使这项工作正常?

$url = 'http://api.some_address_on_the_same_server.com';
$postdata = array(...);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch); // $result is always false when on the same server for some reason
curl_close($ch);

1 个答案:

答案 0 :(得分:3)

必须与锁定会话情况相关。试试这种方式。

<?php
$url = 'http://api.some_address_on_the_same_server.com';
$postdata = array(...);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

session_write_close();

$result = curl_exec($ch); // $result is always false when on the same server for some reason
curl_close($ch);

session_start();
?>

编辑

您是否在Windows主机文件中添加了例外? /窗/ SYSTEM32 /驱动器/ etc / hosts中

127.0.0.1 yourdomain.com

了解更多信息。查看this