我目前有一个Laravel应用程序,它正在执行从一个路由到同一路由内另一路由的CURL请求。我的CURL看起来像这样:
//LOGGING THAT A CURL CALL IS ABOUT TO BE MADE
$url = env('APP_URL') . '/tests/add/results';
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //return server error
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLINFO_HEADER_OUT, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $test_post_data);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
在发送POST的路由中,我记录的第一件事是请求数据:
//LOGING THAT I RECEIVED THE CURL CALL in receiving function
我注意到,请求数据的日志记录的时间与超时时间完全相同,这意味着请求实际上是在首次调用后10秒发送的。
在我的日志中,我会看到类似的东西:
10:10:10 - LOGGING CURL CALL
10:10:20 - Recieving CURL call
如果我将超时时间更改为30,则日志显示30秒钟后我收到了CURL呼叫。
有人知道为什么会这样吗?
CURL的响应始终以false
的形式返回。
答案 0 :(得分:0)
您没有提供足够的信息,但是我认为问题可能是以下一种或多种:
http://127.0.0.1:8000
未运行http://127.0.0.1:8000/tests/add/results
上的脚本运行时间过长,请求超时在完成之前尝试更多调试,并提供更多信息,以便我们为您提供帮助。
PS:首先,我将尝试捕获标题(curl_setopt($ch, CURLINFO_HEADER_OUT, true);
)并打印出响应(var_dump($response);
)-或将其保存到某个文件中:)
答案 1 :(得分:0)
我做了以下工作来使发布请求工作: 我没有通过CURL调用路由,而是直接在route函数中发布了帖子
['foo', 'bar[1]', 'baz[1:10:var1[2+1]]', 'var1[2+1]', 'qux[[1,2,int(var2)]]', 'var2', 'bob[len("foobar")]', 'var3[0]']
['baz[1:10:var1[2+1]]', 'var1[2+1]']
['baz[[1]:10:var1[2+1]:[var3[3+1*x]]]', 'var1[2+1]', 'var3[3+1*x]', 'x']