我已经搜索了这个问题的答案,但是找不到任何东西......
我们有一台服务器,我们有一个带有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);
答案 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