根据GAE 获取文档,cookie 不通过重定向处理:
重定向时不处理 Cookie。如果需要 cookie 处理,请将 follow_redirects 设置为 False 并手动处理 cookie 和重定向。
所以,我正在尝试实施手动解决方案:
page = urlfetch.Fetch(
url = url,
payload = form_data,
method = urlfetch.POST,
headers = headers,
follow_redirects = False,
deadline = 60)
cookies = ''
while page.status_code == 302:
url = page.headers.get('location')
if page.headers.get('set-cookie'):
cookies = page.headers.get('set-cookie')
headers['cookie'] = cookies
page = urlfetch.Fetch(
url = url,
method = urlfetch.GET,
headers = headers,
follow_redirects = False,
deadline = 60)
if page.status_code == 200 and page.content:
self.response.out.write(page.content)
但它没有按预期工作。看起来我缺少一些 cookie:
header_msg 包含响应标头的 httplib.HTTPMessage 实例。如果可能有多个具有相同名称的标头(例如 Set-Cookie 标头),请调用 header_msg.get_headers(header_name) 以将值作为列表检索。
但是我应该如何使用那个header_msg?