Проблема в том, что когда я выполняю POST-запрос с urlfetch.fetch (...) в среде разработки (локальный сервер механизма приложений Google), я получаю статус HTTP 302, как и ожидалось (я могу сделать перенаправление).Но когда я загружаю приложение и пытаюсь запустить его с .appspot.com, то получаю ответы с 403, что "запрещено".
Подробности:
- URL-адрес https (сайт моего банка)
- есть куки в заголовках запросов
- .. что еще?
Похоже, удаленный сайт (банк) видит, что 2 запроса по-разному: локальный в порядке, "от goole" не в порядке.
Мой код Python:
url1 = "https://www.ebgz.pl/detal-web/jbank/unlogged/choose/method.do?rid="+str(random.random())+"&srvc="
response = urlfetch.fetch(url1)
lparser = Link_HTMLParser()
lparser.feed(response.content)
url2 = "https://www.ebgz.pl" + lparser.frameSrc
hdrs = {}
hdrs['Referer'] = url1
cookie = response.headers.get('Set-Cookie')
if cookie:
hdrs['Cookie'] = cookie
response = urlfetch.fetch(url2, headers = hdrs)
Где Link_HTMLParser - простой синтаксический анализатор для получения исходной ссылки фрейма (если вы посмотрите на содержимое первого ответа url1, станет ясно):
class Link_HTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
if tag == "iframe":
for n,v in attrs:
if n == 'src':
self.frameSrc = v
Проблема со вторым ответом: его403 от Google, и 200 от местного GEA Serwer.Я упоминал о POST в начале моего вопроса, но похоже, что проблема возникает независимо от метода (GET или POST).Я полагаю, это проблема управления сеансом ..