我是靠谱客的博主 洁净大侠,最近开发中收集的这篇文章主要介绍php curl http2,用php做ios http2推送服务遇到的坑,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

苹果推送刚刚升级不久, 我在网上查到的所有资料, 都是老版本的, 支持Json Web Token, p8文件的没找到

只要确认php curl支持http2就可以直接使用这个库了, 否则会遇到各种莫名其妙的错误

我遇到的坑主要是php环境方面的, , 以Cent OS为例

确认php直接运行

php --ri curl

如果看到

HTTP2 => Yes

恭喜.

如果没有找到HTTP2,或者是NO,那么都是不支持http2的,那么接下来就只有重新安装php,或者是curl这个扩展了

确认你系统的curl是否支持http2的发送请求,因为php要用到,我用的Cent OS 6的系统默认curl是不支持发送http2请求的

运行curl --version查看

如果看到了有类似这样的nghttp2/1.24.0,应该就是支持http2了

也可以

curl -I https://nghttp2.org , 注意是参数是大写的i

看看是否支持http2

如果不支持http2,请升级curl后重新安装php

如果系统的curl支持http2, 而php不支持,那就是看你的系统中是否安装了多个curl,而php安装curl指定的路径是不支持的那一个

if (!defined('CURL_HTTP_VERSION_2_0')) {

define('CURL_HTTP_VERSION_2_0', 3);//好像php 7.0.7才定义了这个

}

$ch = curl_init();

curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);

代码中加入以上, 这样就可以发送http2的请求了

最后的大坑

如果所有配置都正确,curl -I https://nghttp2.org时也是显示的http2的请求,但是curl -I https://api.development.push.apple.com还是显示为http 1.x请求时,请升级你的openssl, 我升级成libressl最版本之后就正常了,最后再重新安装你的php环境.安装时最好指定你的curl和openssl的安装路径

最后

以上就是洁净大侠为你收集整理的php curl http2,用php做ios http2推送服务遇到的坑的全部内容,希望文章能够帮你解决php curl http2,用php做ios http2推送服务遇到的坑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部