我尝试使用Curl从Laravel 5控制器发送卷曲请求。
public function funcname(){
$ch = curl_init();
$message = http_build_query([])
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $message);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
回复是:
Call to undefined function App\Http\Controllers\curl_init()
有人能指出我的错误吗?
答案 0 :(得分:0)
似乎没有启用curl。大多数Windows配置的说明:
找到您的os.environ
,将其打开并找到php.ini
并取消注释此行(删除extension=php_curl.dll
)。然后重启Apache。
在Linux上,行是;
。
答案 1 :(得分:0)
Controller
位于命名空间下,因此您应该使用\curl_init()
而不是curl_init()
(同时应启用curl
,请注意其他注释)。此外,您不需要使用curl
,因为您使用的是Laravel
,然后使用Guzzle Http Client。查看this tutorial了解更多信息。这是使用Guzzle
生成帖子请求的一个非常简单的示例:
$client = new \GuzzleHttp\Client();
$response = $client->post("http://example.com", [
'headers' => ['X-Foo' => 'Bar'],
'body' => ['field_name' => 'value']
]);
var_dump($response->getStatusCode());
Guzzle将使用curl
(默认情况下)或其需要使用的任何内容。