GAE fetch documentationに従って、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)
しかし、期待どおりには機能しません。私はいくつかのクッキーが欠けているように見えます:
header_msg 応答ヘッダーを含む httplib.HTTPMessage のインスタンス。同じ名前のヘッダーが複数ある可能性がある場合 (Set-Cookie ヘッダーなど)、header_msg.get_headers(header_name) を呼び出して、値をリストとして取得します。
しかし、そのheader_msgをどのように使用すればよいですか?