【发布时间】:2013-09-22 19:59:03
【问题描述】:
直到几天前,我有一个在 GAE 和测试服务器上运行良好的应用程序。它连接到远程站点,自动登录和浏览页面并输入信息。远程站点使用动态 URL 来跟踪会话,每个页面都提供下一次调用的链接。 该程序非常基本:urllib2.urlopen 然后正则表达式提取下一个 url 键,然后新调用 urllib2.urlopen 等等。
现在我的应用程序在测试服务器上仍然可以完美运行,但在 GAE 上部署时失败:我对 urllib2.open 进行了一系列调用,并且大多数时候,远程站点说它已经在第二次调用时丢失了会话,但是1/10th 我可以参加第三次电话会议,一旦 GAE 成功参加第四次电话会议。
这似乎表明这不是远程站点的安全问题(没有改变),也不是我在其他帖子中读到的重定向和 cookie 问题。
用户向我报告说它在 9 月 13 日之前运行良好,并且在 20 日向我报告了失败。最近 GAE 中对 URLfetch 的处理是否发生了变化?
我刚刚花了 2 天时间解决这个问题,但没有任何切实的线索。
可能是IP地址的问题?远程服务器可以通过 IP 地址和动态 URL 一起控制会话,我可以想象 GAE 不保证在对 GAE 的同一次调用中,对 URLlib 的所有调用都由同一台机器处理?这可以解释为什么有时它适用于两个或三个连续的 URL。我不知道足够的GAE内部机制来确认。
提前感谢您的想法。
【问题讨论】:
标签: python google-app-engine urllib2