当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何在PHP中发送HTTP/2POST请求》经验,为你挑选了2个好方法。

我在Ruby中发送HTTP/2 POST请求时发现了一个类似的问题 但是我想用PHP更新我的服务器

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

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



1> Daniel Stenb..:

PHP> = 5.5.24的CURL扩展支持HTTP/2.(自此提交)

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

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



2> tiempor3al..:

PHP> = 5.5.24不足以使用curl发出HTTP/2请求,即使定义了CURL_HTTP_VERSION_2_0也是如此.如果您尝试向APNS(Apple推送通知服务)发出请求,您将收到如下错误消息:

?@@?HTTP/2 client preface string missing or corrupt. Hex dump for received bytes: 504f5354202f332f6465766963652f616538666562613534

由于curl是libcurl 的绑定,因此您必须在启用了http/2的情况下使用curl.

有关示例代码,请参阅我在此处对类似问题的回答

对于安装过程,您可以按照本教程进行操作

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有