php curl http2,curl 支持 HTTP2
时间: 2023-11-01 07:57:25 浏览: 52
是的,PHP的cURL库支持HTTP/2协议。但是要注意,curl和libcurl必须使用支持HTTP/2的版本(7.46.0或更高版本)。在使用cURL时,需要将CURLOPT_HTTP_VERSION选项设置为CURL_HTTP_VERSION_2_0。例如:
```php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://example.com");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
$data = curl_exec($ch);
curl_close($ch);
```
需要注意的是,使用HTTP/2协议必须使用HTTPS协议。
相关问题
php curl CURLINFO_HTTP_CODE
在 PHP 中,curl 请求的 HTTP 状态码可以通过 curl_getinfo 函数来获取,具体可以通过 CURLINFO_HTTP_CODE 来获取,如下所示:
```php
// 初始化 curl
$ch = curl_init();
// 设置 URL 和其他参数
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 执行 curl 请求
$response = curl_exec($ch);
// 获取响应的 HTTP 状态码
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 关闭 curl
curl_close($ch);
// 输出 HTTP 状态码
echo "HTTP 状态码:{$httpCode}";
```
其中,curl_getinfo 函数的第二个参数传入 CURLINFO_HTTP_CODE,表示获取响应的 HTTP 状态码。在上面的例子中,如果请求成功,$httpCode 的值将会是 200。
curl http 返回302
当使用curl发送HTTP请求时,如果服务器返回的状态码是302,意味着发生了重定向。重定向是指服务器将请求转发到另一个URL。引用中提到,当使用curl请求http://ww.baidu.com时,只会获取到302 Found状态码。
为了获取重定向后的内容,可以使用以下方法进行设置和处理:
1. 初始化curl并设置URL:
```
$ch = curl_init($url);
```
2. 设置请求头信息:
```
$headers = array(
"Content-type: text/xml;charset=\"utf-8\"",
"Accept: text/html, application/xml;q=0.9, application/xhtml xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1",
"Cache-Control: no-cache",
"Pragma: no-cache"
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
```
3. 设置curl选项,包括返回结果字符串、支持gzip压缩和自动跟随重定向:
```
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 是否抓取跳转后的页面
```
4. 执行curl请求并获取结果:
```
$response = curl_exec($ch);
```
通过以上设置,可以获取到重定向后的内容。引用中给出了使用curl获取302跳转之后内容的示例代码。
总结回答,当使用curl发送HTTP请求时,如果返回的状态码是302,说明发生了重定向。可以通过设置curl选项来获取重定向后的内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [php使用curl请求返回302(30x)](https://blog.csdn.net/weixin_34453486/article/details/115411946)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [curl返回302 found问题相关](https://blog.csdn.net/kangaroo835127729/article/details/24303111)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]