Esistono modi semplici per effettuare una richiesta HTTP e ottenere la risposta non elaborata (in particolare le intestazioni)?Ottenere una risposta HTTP non analizzata
risposta
Utilizzando il modulo socket direttamente:
import socket
CRLF = "\r\n"
request = [
"GET/HTTP/1.1",
"Host: www.example.com",
"Connection: Close",
"",
"",
]
# Connect to the server
s = socket.socket()
s.connect(('www.example.com', 80))
# Send an HTTP request
s.send(CRLF.join(request))
# Get the response (in several parts, if necessary)
response = ''
buffer = s.recv(4096)
while buffer:
response += buffer
buffer = s.recv(4096)
# HTTP headers will be separated from the body by an empty line
header_data, _, body = response.partition(CRLF + CRLF)
print header_data
HTTP/1.0 302 Found
Location: http://www.iana.org/domains/example/
Server: BigIP
Connection: Keep-Alive
Content-Length: 0
Wow, grazie per la soluzione pienamente funzionante! Questo diventa enormemente più complicato se hai bisogno di usare HTTPS? – Acorn
Grazie, Jeremy - Ho appena effettuato l'accesso di nuovo per aggiungere la divisione di risposta, e tu mi hai battuto ad esso :) –
@Acorn: Se vuoi fare SSL in questo modo, dovrai imporre il modulo ssl e usare un SSLSocket piuttosto che un normale socket. Non l'ho usato da solo, quindi potrebbero esserci altre differenze. Sembra un buon argomento per un'altra domanda SO, però :) –
- 1. Ottenere intestazioni di risposta HTTP non corretti
- 2. Come ottenere la stringa di query non analizzata da una richiesta http in Express
- 3. Codice risposta risposta Http Android
- 4. XMLHttpRequest per ottenere risposta HTTP dall'host remoto
- 5. Decomprimendo una risposta http gzipata
- 6. Come impostare un'intestazione in una risposta HTTP?
- 7. Risposta errore HTTP mappa
- 8. Python zlib non decodificabile se restituito da una risposta http
- 9. Risposta a una richiesta POST HTTP idempotente
- 10. Genera una risposta HTTP in Ruby
- 11. Risposta HTTP per metodi HTTP non supportati con Node.js?
- 12. urllib2 non recupera l'intera risposta HTTP
- 13. richiesta Node.js HTTP non restituendo piena risposta
- 14. PHPExcel, Data analizzata erroneamente
- 15. Come ottenere risposta completa per Groovy RestClient risposta non riuscita
- 16. Risposta null dalla richiesta HTTP HTTP
- 17. Ottenere la dimensione della risposta HTTP in Java
- 18. Ottenere risposta della richiesta http senza lunghezza del contenuto?
- 19. Impossibile ottenere la risposta intestazione HTTP personalizzata da Ajax getAllResponseHeaders
- 20. Comprimi HTTP Risposta GET
- 21. Estensione Chrome - Come ottenere il corpo della risposta HTTP?
- 22. Come ottenere il codice di stato HTTP dalla risposta SOAP
- 23. Come ottenere una risposta stringa da Retrofit2?
- 24. Node.js Stream di risposta HTTP
- 25. Sostituisci i valori "cache-control" in una risposta HTTP
- 26. concatenazione risposta chunked akka-http
- 27. UIWebView caricamento stringa html analizzata
- 28. Ottenere intestazioni da una risposta al volo
- 29. Come posso effettuare una richiesta http senza recuperare una risposta http in Python?
- 30. angolare $ http servizio - forza non parsing risposta a JSON
Che cosa speri di fare con esso che non si può fare con i modi più user-friendly di ricevere i dati? –
Voglio vedere se il server sta usando '\ n' invece di' \ r \ n' nelle sue risposte. – Acorn