如何在PHP中发送HTTP / 2 POST请求

我在Sending HTTP/2 POST request in Ruby找到了类似的问题
但我想用PHP更新我的服务器

新的Apple推送通知基于HTTP / 2的API在此描述:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html

任何具有HTTP / 2经验的人都可以帮助我在PHP中作为客户端发出请求.

解决方法:

PHP> = 5.5.24的CURL扩展支持HTTP / 2. (自this commit起)

您还需要安装libcurl – curl函数使用的基础库 – 启用HTTP / 2支持.这意味着比7.38.0更新的libcurl,但实际上,越新越好. Libcurl必须在显式启用HTTP / 2支持的情况下构建,在编译时使用–with-nghttp2标志.

只需使用curl,因为您通常使用它,并通过传入CURL_HTTP_VERSION_2_0将CURLOPT_HTTP_VERSION选项设置为使用HTTP / 2.然后,如果客户端和服务器都支持请求,您将获得升级到版本2的请求.

在PHP 5.5.24之前,如果libcurl是使用HTTP / 2支持构建的,则可以显式传入CURL_HTTP_VERSION_2_0的int值,因为PHP仍会将其传递给libcurl.目前,它的值为3 – 这不应该改变,但可以.

if (!defined('CURL_HTTP_VERSION_2_0')) {
    define('CURL_HTTP_VERSION_2_0', 3);
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
上一篇:http2模块nginx不起作用


下一篇:java – 使用jdk8进行Conscrypt以为http2启用ALPN