Форум сайта python.su
Есть у меня скрипт, которому, после http запроса, через Location возвращается адрес. Проблема в том что при переходе на этот адрес возвращается ошибка, хотя в опере всё нормально. Правильно я составляю запрос?
h.connect(host)
h.putrequest('GET',url)
h.putheader('Host', host)
h.putheader('Accept','text/plain,text/html,application/xml,application/html+xml,multipart/mixed,text/vnd.wap.wml,application/xhtml+xml')
h.putheader('Accept-Charset','windows-1251,utf-8;q=0.7,*;q=0.7')
h.putheader('Accept-language','ru,en-us;q=0.7,en;q=0.3')
h.putheader('User-Agent', unicode(usa))
h.putheader('x-wap-profile','http://nds1.nokia.com/uaprof/NN70-1r100.xml')
if cook!=None:
h.putheader('Cookie',cook)
h.putheader('Cookie2','$Version="1"')
h.endheaders()
ho=str(h.getreply()[2])
print ua(ho)
cook=''
location=''
ho=ho.split('\n')
for i in ho:
if i.startswith('Set'):
i=i.split(chr(59))[0].split(chr(32))[1]
if i.startswith('password'):pass
else:cook=cook+i+'; '
if i.startswith('Loc'):i=i.split(chr(32))[1];location=i
if cook.endswith('; '):cook=cook[:-2]
if location!='':fi=str(h.getfile().read());h.close();return cook, location, fi
else:fi=str(h.getfile().read());h.close();return cook, location, fi
Офлайн
По вопросу: какую ошибку возвращает сервер? И если можно, то покажите полные листинги HTTP запроса и ответа (заголовки и тело сообщения). Тогда можно будет сказать что в них не так, по коду ничерта не видно, он с большим трудом читается, прям обфускация какая-то.
От себя: код ужасен до нимагу:( Парсинг заголовков HTTP сообщения - это велосипед, да и какой же он убогий…
Читать это: http://docs.python.org/library/urllib2.html и это: http://www.voidspace.org.uk/python/articles/urllib2.shtml
Это из стандартного, а есть ещё http://code.google.com/p/httplib2/, эта попроще будет.
Офлайн
Вот ответ сервера:
Authorizing
/enter.php?login=login&password=password
Server: nginx/0.6.39
Date: Sun, 25 Oct 2009 20:19:58 GMT
Content-Type: text/html; charset=utf-8
Connection: close
X-Powered-By: PHP/5.1.6
Last-Modified: Sun, 25 Oct 2009 20:19:58 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Set-Cookie: PHP=8sq4r3obbs95m7hc9fagnlbut1; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Set-Cookie: id_user=1436; expires=Mon, 25-Oct-2010 20:19:58 GMT
Set-Cookie: password=deleted; expires=Sat, 25-Oct-2008 20:19:57 GMT
Location: enter.php?mode=enterPHP=8sq4r3obbs95m7hc9fagnlbut1
Content-Length: 7992
links is loading
/enter.php?mode=go
Server: nginx/0.6.39
Date: Sun, 25 Oct 2009 20:20:07 GMT
Content-Type: text/html; charset=utf-8
Connection: close
X-Powered-By: PHP/5.1.6
Last-Modified: Sun, 25 Oct 2009 20:20:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
All: 84Remain 84Error: 0
/enter.php?mode=gok&to=4&id=2121
Server: nginx/0.6.39
Date: Sun, 25 Oct 2009 20:20:11 GMT
Content-Type: text/html; charset=utf-8
Connection: close
X-Powered-By: PHP/5.1.6
Last-Modified: Sun, 25 Oct 2009 20:20:10 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Pragma: no-cache
Location: go.php?url=veterok.h2m.ru
Content-Length: 3384
Офлайн