Python:异步http请求按顺序发送并自动处理cookies?

2024-05-01 21:23:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个到web服务的python(2.6)接口。我需要通过http进行通信,以便:

  • Cookies是自动处理的
  • 请求是异步的
  • 请求的发送顺序(对这些请求的响应的接收顺序无关紧要)。在

我尝试过从内置库中轻松获得的功能,面临不同的问题:

  • 使用httpliburllib2,请求是同步的,除非我使用thread,在这种情况下,不能保证顺序得到遵守
  • 使用asyncore,没有库自动处理web服务发送的cookies。在

经过一些google搜索之后,似乎有许多python脚本或库的示例符合3个条件中的2个,但不是其中的3个。我正在考虑阅读cookielib源代码,并根据asyncore(或仅以一种即席的方式应用于我的应用程序),但奇怪的是,还没有这样的东西存在,因为我想我不是唯一感兴趣的人。如果有人知道关于这个问题的建议,我们将不胜感激。在

谢谢。在

编辑以澄清:

我所做的是一个本地代理,它将我的IRC客户端与webchat连接起来。它创建一个侦听IRC连接的套接字,然后在接收到IRC连接后,通过http登录webchat。我无法访问webchat的行为,它使用cookies作为会话id。当客户机向python代理发送多个IRC请求时,我必须通过http和cookies将它们转发到webchat的服务器。我还想异步地执行此操作(我不想在发送下一个请求之前等待http响应),而目前发生的情况是http请求的发送顺序不是IRC命令的接收顺序。在

我希望这能澄清问题,如果没有,我当然会详细说明


Tags: 功能webhttp代理顺序irc情况urllib2
1条回答
网友
1楼 · 发布于 2024-05-01 21:23:45

Using httplib and urllib2, the requests are synchronous unless I use thread, in which case the order is not guaranteed to be respected

除非您在将响应发送到第二个连接之前从第一个连接返回响应,否则您如何知道订单已被遵守?毕竟,您不关心响应的顺序,因此很可能响应按您期望的顺序返回,但您的请求处理顺序错误!在

您可以保证订购的唯一方法是在开始第二个请求之前等待第一个请求已成功到达的确认(例如,您开始接收对它的响应)。可以通过在到达第一个线程的响应处理部分之前不启动第二个线程来实现这一点。在

相关问题 更多 >