我在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);