Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Web
  • » conn.getresponse() сервер отвечает в юникоде [RSS Feed]

#1 Июль 18, 2009 01:21:49

alphaville
От:
Зарегистрирован: 2009-07-17
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

conn.getresponse() сервер отвечает в юникоде

смысловой кусок кода:

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 попадает полная абракадабра. браузерами это потом не открывается даже с установкой принудительной кодировки.

что делать?



Офлайн

#2 Июль 18, 2009 16:16:21

alphaville
От:
Зарегистрирован: 2009-07-17
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

conn.getresponse() сервер отвечает в юникоде

вот посмотрел в wireshark ответ сервера:



Отредактировано (Июль 18, 2009 16:16:36)

Офлайн

#3 Июль 18, 2009 18:10:54

alphaville
От:
Зарегистрирован: 2009-07-17
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

conn.getresponse() сервер отвечает в юникоде

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

добавил в код вывод 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:



Отредактировано (Июль 18, 2009 18:12:57)

Офлайн

#4 Июль 18, 2009 18:43:43

alphaville
От:
Зарегистрирован: 2009-07-17
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

conn.getresponse() сервер отвечает в юникоде

Ребята, ответ найден!

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

Завтра напишу ответ.



Отредактировано (Июль 18, 2009 18:44:54)

Офлайн

  • Начало
  • » Web
  • » conn.getresponse() сервер отвечает в юникоде[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version