【发布时间】:2015-10-29 10:24:24
【问题描述】:
我在一个可以移动的站点上点击了一个 url,当端点移动时,我需要重新应用 POST/GET 参数。我缺少什么来确保这个处理程序做到这一点?
class RedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_301(self, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(
self, req, fp, code, msg, headers)
result.status = code
return result
def http_error_302(self, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_302(
self, req, fp, code, msg, headers)
result.status = code
return result
当我通过 fiddler 查看流量时,我注意到用于身份验证的令牌被丢弃了。
(请注意,我不能对这个解决方案使用请求,它必须是标准库)
谢谢
【问题讨论】:
-
你的 Cookies 在哪里? (或您的会话信息)
-
@SDilmac 所以你认为 cookie 处理程序会解决这个问题?
-
真的!所有使用cookie cos的网络服务都无法保存访问者的所有动作。
-
@SDilmac 我在开启程序中添加了一个cookiejar和处理程序,响应服务器没有返回cookie,所以我的猜测是服务器不会返回cookie。我什至尝试在 Web 浏览器中做同样的事情(观察 fiddler 中的流量),但没有返回任何身份验证。我的猜测是网络浏览器将表单参数从 url 保存到 url。我需要在 302 重定向上以某种方式从原始请求中捕获参数/数据,然后将它们推送到新请求。我尝试创建一个新的请求对象,但这会引发错误。
-
试试这个code.google.com/p/python-proxy/source/browse/trunk/…。浏览器、服务器、客户端、ssl 等等。你想在数据包上获取一些标头,但如果触摸它就会损坏。需要先克隆才能重用。或将您的计算机设置为网关!希望有帮助。
标签: python python-2.7 urllib2 urllib