Python相当于php的stream_context_create


Python equivalent to php's stream_context_create

我正在遵循一个教程,该教程要求我打开套接字并发送带有证书的有效负载:http://blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/。

我在弄清楚如何使用python执行以下操作时遇到了一些困难:

// Open the connection
$apnsHost = 'gateway.sandbox.push.apple.com';
$apnsPort = 2195;
$apnsCert = 'apns-dev.pem';
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', $apnsCert);
$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);
// Send the payload
$apnsMessage = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload;
fwrite($apns, $apnsMessage);
// Close Resources
socket_close($apns);
fclose($apns);

我过去使用过python请求。但仅适用于简单的获取请求。

我可以使用python-requests在python中重写上面的代码吗,或者是否有更适合此任务的东西?

查看 stream_context_create 的 PHP 文档以及您遵循的教程,我认为您要完成的是打开一个 SSL 安全套接字连接到 gatway.sandbox.push.apple.com。

我认为你想看的python模块是ssl模块。 有一个从客户端连接到服务器的示例,可能将密钥文件和证书文件选项设置为ssl.wrap_socket()到您创建并注册以与 Apple 服务器通信的证书。