我尝试通过curl与现有证书通过APNS http2 API进行连接。
$/usr/local/Cellar/curl/7.47.1/bin/curl -v -d \
'{"aps":{"alert":"hi","sound":"default"}}' \
--cacert cert.pem --key key.pem --cert clientcert.pem \
-H "apns-topic: topics" --http2 \
https://api.development.push.apple.com/3/device/<device_token>
我已经通过以下链接从openssl命令生成了cert,key和cacert:http://www.rajatswarup.com/blog/2007/03/10/using-certificates-with-curl/
使用此命令,我收到此错误:
{"reason":"MissingProviderToken"}
当我尝试使用POSTMAN时,我也遇到了同样的错误。我该如何解决这个问题?
第二次尝试使用此curl命令:
/usr/local/Cellar/curl/7.47.1/bin/curl -v -d \
'{"aps":{"alert":"hi","sound":"default"}}' \
--cert clientcert.pem:<passphrase> \
--key key.pem \
-H "apns-topic: topics" --http2 \
https://api.development.push.apple.com/3/device/<devide_token>
我在这里得到以下错误:
error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
* Closing connection 0
curl: (35) error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
我也尝试过使用Java的Jetty客户端,请点击此链接:https://judepereira.com/blog/sending-notifications-via-apples-new-http2-api-using-jetty-9-3-6/但这也不起作用,它会挂起整个POST请求并且不会返回任何响应。 我的证书是有效的开发证书,那么这里的主要问题是什么? 有人可以帮帮我吗?
谢谢:)