PHP:如何使用cURL 进行GET 请求

可以使用 curl_init 和其他函数的组合使用 cURL 库来执行 GET 请求。
当从 PHP 使用 cURL 时,我们需要使用函数组合来指定请求的不同特征。

可以在发送请求之前和使用 curl_init 加载 cURL 之后使用 curl_setopt 定义请求的选项。

要使用 cURL 执行 HTTP GET 请求,并下载响应正文,我们可以这样做:

//URL to fetch
$url = "https://onitroad.com/";
//Initialize cURL session
$ch = curl_init();
//Provide the URL for the request we are about to perform
curl_setopt($ch, CURLOPT_URL, $url);
//Option to Return the Result, rather than just true/false
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//Perform the request, and save content to $result
$result = curl_exec($ch);
//Close the cURL resource, and free up system resources!
curl_close($ch);
//Shows the result!
echo $result;

设置请求选项

通常,当有人想要执行 GET 请求时,他们不仅想发送 HTTP 请求,还想返回响应正文。

也可以返回响应头,但大多数情况下我们只想返回正文。
如果我们只需要返回标头,我们应该查看本教程:Performing a HEAD Request with cURL

cURL 通过 curl_setopt 函数提供了各种选项,我们需要使用它来告诉 cURL 我们要下载响应正文。

通常, curl_exec 函数只会在成功时返回 true 或者在失败时返回 false,为了改变这种行为,而是让它返回下载的内容,我们可以设置 CURLOPT_RETURNTRANSFER 函数:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

这样做会使函数在成功时返回结果,在失败时返回 false。

如果需要,我们也可以返回 HTTP 响应头,为此,我们需要设置 CURLOPT_HEADER 选项:

curl_setopt($ch, CURLOPT_HEADER, true);

执行 GET 请求

在设置选项之前加载cURL很重要,所以记得先使用curl_init,最后使用curl_exec来执行请求。

我们可以使用相同的 cURL 会话执行更多请求(在循环中)。
当 HOST 相同时,这可能会带来一些性能提升,而我们只是更改了相对 URL。

如果在循环中运行,我们可以通过再次设置 CURLOPT_URL 选项来更改后续请求的 URL:

curl_setopt($ch, CURLOPT_URL, $new_url);

之后我们可以再次调用 curl_exec 以使用相同的会话执行另一个请求。

最后,完成后调用 curl_close 将释放系统资源并关闭会话。

日期:2020-06-02 22:17:11 来源:oir作者:oir