本地Laravel API通过Curl调用无响应问题求助
解决Laravel本地API通过Curl调用无响应的问题
问题场景
我搭建了一个Laravel产品API,在浏览器直接访问http://localhost:8000/api/products能正常返回数据,但用以下PHP Curl代码调用时,$result完全没有输出:
$url = 'http://localhost:8000/api/products'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); curl_close($ch); $result = json_decode($data,true); echo $result;
更奇怪的是,我用一个结构几乎一致的Mockable API测试这段Curl代码,却能正常拿到响应结果。
问题原因与解决方案
经过一番排查和研究,终于定位到问题:Laravel本地服务通过Curl调用时,需要使用本地静态IP而非localhost来访问。
只需要把Curl代码里的请求地址从http://localhost:8000/api/products替换成你的本地静态IP(比如http://192.168.1.100:8000/api/products),就能正常获取到API的JSON响应了。
额外小建议:可以先在终端用curl http://你的静态IP:8000/api/products测试,确认能拿到数据后再修改代码,这样更稳妥。
内容的提问来源于stack exchange,提问作者xeravim
相关产品推荐
相关产品推荐

