Найти - Пользователи
Полная версия: conn.getresponse() сервер отвечает в юникоде
Начало » Web » conn.getresponse() сервер отвечает в юникоде
1
alphaville
смысловой кусок кода:

conn.request('GET', redirect_location,{},headers)
resp = conn.getresponse()
print resp.status
print resp.getheaders()
data = resp.read()
conn.close()

f = open(“result.htm”, “w”)
f.write( data )
f.close()

сервер отвечает в юникоде и в result.htm попадает полная абракадабра. браузерами это потом не открывается даже с установкой принудительной кодировки.

что делать?
alphaville
вот посмотрел в wireshark ответ сервера:

alphaville
не понимаю что он отдаёт!

добавил в код вывод HEX кодов первых 10-ти символов:

conn.request('GET', redirect_location,{},headers)
resp = conn.getresponse()
print resp.status
print resp.getheaders()
data = resp.read()
conn.close()

print ord(data[0])
print ord(data[1])
print ord(data[2])
print ord(data[3])
print ord(data[4])
print ord(data[5])
print ord(data[6])
print ord(data[7])
print ord(data[8])
print ord(data[9])

f = open("result.htm", "w")
f.write( data )
f.close()
он выдал:
31
139
8
0
0
0
0
0
0
3

откуда это берётся - не понимаю!

вот то, что сохранилось в файл result.htm:
alphaville
Ребята, ответ найден!

Всему виной была одна строчка в заголовках. Кто угадает - тому пирожок.

Завтра напишу ответ.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB