result = s.recv(8192)
num_bytes_recv += len(result)
index = result.find('\r\n\r\n')
result_wo_header = result[index+4:]
data = ""
with open(file_name, 'wb') as f:
data+=result_wo_header
while True:
print "number of byte recieve : ",num_bytes_recv
result = s.recv(8192)
print result
if not result:
break
num_bytes_recv+=len(result)
data+=result
f.write(data)
print "download complete"
s.close()
Я пытаюсь загрузить любые типы файлов с заданного URL-адреса, код работает отлично, пока не достигнет конца или последнего фрагмента данных, он застрял там до 10 секунд. Я делаю что-то не так здесь? до 5~10 секунд от последнего "количества полученных байтов:" до "загрузки завершена" помогите!!
Content-Length
, чтобы узнать, сколько данных вам нужно прочитать из сокета. См. stackoverflow.com/a/15995101/2644759. - person Philip Tzou   schedule 11.10.2016HTTP/1.0
илиHTTP/1.1
? 1.1 по умолчанию сохраняет соединение открытым, чтобы его можно было повторно использовать для нескольких запросов, 1.0 по умолчанию закрывает соединение после завершения загрузки. Если вы используете 1.1, вы должны отправитьConnection: close
, чтобы закрыть соединение в конце. - person Barmar   schedule 11.10.2016