1

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

我们有一个服务器,在它上面我们有一个带有 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);
4

1 回答 1

4

必须与锁定会话情况有关。试试这个方法。

<?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 主机文件中添加了异常?/windows/system32/drivers/etc/hosts

喜欢

127.0.0.1 yourdomain.com

了解更多信息。看看这个

于 2013-06-27T14:01:32.430 回答