所以,如果我从浏览器中调用它,那么这个laravel get产品api是有效的,正如你从这张图片中看到的那样
这是试图获得此json响应的curl代码块
$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;
但我无法得到任何结果,没有回应。我在https://demo0546443.mockable.io/products/getAllProducts中有一个可模拟的api,它产生与我的localhost api几乎相同的json,它返回响应,因为它应该有。请帮忙
解决方案因此,经过无数个小时的研究,似乎需要在静态IP上访问laravel,而不是在localhost上访问。
虽然建议使用像Guzzle这样的库来代替HTTP请求。但是非常乐于实现和使用
而不是echo $result
尝试return response()->json($data)
。
echo $result
返回标题application/html
,而json()
返回application/json
希望这有帮助。