Для протокола HTTP требуется \r\n
в конце каждого заголовка и дополнительный символ в пустой строке в конце заголовков HTTP.Вы не имеете явного представления об окончаниях строк в вашем буфере sdata
, и поэтому ваш буфер заканчивается только окончаниями строк \n
.
Проверено на Windows, Linux и OS X, чтобы убедиться:
>>> x = """a
b
c"""
>>> x
'a\\nb\\nc\\n'
Где вам нужно:
>>> x = "a\r\nb\r\nc\r\n"
>>> x
'a\\r\\nb\\r\\nc\\r\\n'
Добавьте \r\n
s и дайтевыстрел.Делая это прямо в буфере, вы получите дополнительный набор \n
, поэтому разделите его на:
sdata = "GET http://google.co.ug/ HTTP/1.1\r\n"
sdata += "Host: google.co.ug\r\n"
sdata += "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/6.0\r\n"
sdata += "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"
sdata += "Accept-Language: en-us,en;q=0.5\r\n"
sdata += "Accept-Encoding: gzip, deflate\r\n"
sdata += "Proxy-Connection: keep-alive\r\n"
sdata += "\r\n"