0

Ich versuche derzeit, einen HTTP-Client mit Python und Sockets zu implementieren. Es ist sehr einfach und das einzige, was es tun muss, ist eine Datei von einem Webserver herunterzuladen und in eine vom Benutzer bereitgestellte Datei zu speichern.Sortieren Header aus HTTP-Antwort vor dem Schreiben in eine Datei

Mein Code funktioniert gut, aber ich habe ein Problem, wie der HTTP-Antwortheader aus der Datei auszuschließen.

Der HTTP-Response-Header ist nur am Anfang der Datei, also dachte ich, dass ich einfach alle Daten in die Datei ablegen und dann den Header herausnehmen könnte. Dies ist jedoch ein Problem, da I/O sehr langsam ist.

Mein nächster Gedanke war, dass ich einige Regex bei der ersten Antwort, die ich vom Server bekomme, laufen lassen konnte, die Kopfzeile wegsortieren und dann den Rest in die Datei ablegen. Dies scheint jedoch eine sehr klobige Art zu sein.

Hat jemand irgendwelche Vorschläge, wie man das klug macht?

Antwort

1

In der HTTP-Antwort sind die Header mit '\r\n\r\n' vom Hauptteil getrennt. Um nur den Körper zu erhalten, können Sie Folgendes versuchen:

bodyBegin = httpResponse.find('\r\n\r\n') + 4 
body = httpResponse[bodyBegin:] 
saveToFile(body) 
Verwandte Themen