2017-08-17 46 views
1

我有一個奇怪的問題。 在laravel控制器動作中,我正在啓動對同一個服務器上的API的curl調用,並且在curl調用完成後再次調用我的同一個控制器函數(其中啓動了curl調用)。控制器動作使用curl調用兩次

$postdata = http_build_query($postvars); 

    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, 'https://' . $hostname . ':8083/api/'); 
    curl_setopt($curl, CURLOPT_FRESH_CONNECT, true); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata); 
    $answer = curl_exec($curl); 

控制器動作後的動作中,我想提出一個捲曲後在同一臺服務器上的API。

回答

1

這不是在控制器上調用方法的正確方法。 比方說,你有

public function test(){ 

} 

public function test2(){ 

} 

你要調用從測試TEST2你可以做這樣的:

public function test(){ 
    $this->test2(); 
} 
+0

遺憾?我沒有添加任何控制器功能在我的問題。這個curl調用是在幫助程序 –

+0

內部進行的,你說過'在一個laravel控制器操作內部,我正在對同一個服務器上的API和同一個控制器函數啓動一個curl調用。無論如何,如果你想調用控制器方法,那麼使用Curl並不是最佳實踐。在您的web.php中註冊命名的路由並調用路由。 –

+0

感謝您的幫助,但我想我沒有解釋確切的情況下,我有一個控制器操作在窗體帖子上調用,在該控制器操作中有一個輔助函數,它對同一個API的cURL調用服務器在laravel之外(運行在不同的端口8083上),所以當這個cURL調用被啓動時,我的同一個控制器動作A被無故再次調用。希望我能夠解釋確切的情況。 –