【问题标题】:Python equivalent to php's stream_context_createPython 等价于 php 的 stream_context_create
【发布时间】:2012-08-07 22:18:03
【问题描述】:

我正在学习一个教程,该教程要求我打开一个套接字并发送带有证书的有效负载: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-requests。但仅适用于简单的 get 请求。

我可以使用 python-requests 在 python 中重写上面的代码,还是有更适合这个任务的东西?

【问题讨论】:

  • 有什么理由不能使用pyapns 代替吗?
  • 你找到解决办法了吗?

标签: php python sockets python-requests


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-04-20
    • 1970-01-01
    • 2019-08-05
    • 2013-12-13
    • 2013-09-26
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多