我在 Sending HTTP/2 POST request in Ruby 发现了一个类似的问题 但我想用 PHP 更新我的服务器
此处描述了基于 HTTP/2 的新 Apple 推送通知 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 必须在编译时使用 --with-nghttp2
标志显式启用 HTTP/2 支持。
只需像平常一样使用 curl,然后设置 CURLOPT_HTTP_VERSION
通过传入 CURL_HTTP_VERSION_2_0
来使用 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);
关于php - 如何在 PHP 中发送 HTTP/2 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34606801/