¿Hay alguna forma directa de realizar una solicitud HTTP y obtener la respuesta sin analizar (específicamente los encabezados)?Obteniendo una respuesta HTTP sin procesar
Respuesta
Con el módulo de socket directamente:
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
¡Guau, gracias por la solución totalmente funcional! ¿Esto se vuelve mucho más complicado si necesita usar HTTPS? – Acorn
Gracias, Jeremy - Acabo de iniciar sesión nuevamente para agregar la división de respuestas, y me ganaste :) –
@Acorn: si quieres hacer SSL de esta manera, necesitarás importar el módulo ssl, y usar un SSLSocket en lugar de un socket regular. No lo he usado yo mismo, entonces puede haber otras diferencias. Suena como un buen tema para otra pregunta de SO, sin embargo :) –
- 1. Obteniendo la respuesta de la solicitud http sin contenido-longitud?
- 2. Parse HTTP encabezados sin procesar
- 3. ¿Qué es el "encabezado HTTP sin procesar"? ¿Cuál es la diferencia entre "encabezado HTTP" y "encabezado HTTP sin procesar"?
- 4. Lectura de una solicitud HTTP sin procesar en Django 1.3
- 5. Obtención de encabezados de respuesta HTTP sin formato
- 6. Obtener respuesta de correo sin procesar desde Jsoup
- 7. Obteniendo y atrapando la respuesta HTTP usando Mechanize en Python
- 8. obteniendo la fuente sin procesar de Firefox con javascript
- 9. Obteniendo consultas SQL sin procesar en CodeIgniter 1.7
- 10. Cómo analizar una respuesta HTTP sin formato como HttpListenerResponse?
- 11. ¿Cómo puedo hacer una solicitud http sin obtener una respuesta http en Python?
- 12. Conversión de solicitud HTTP sin procesar en el objeto HTTPWebRequest
- 13. Obteniendo un archivo de una solicitud HTTP en java
- 14. Generar una respuesta HTTP en Ruby
- 15. ¿Tiene clojure una cuerda sin procesar?
- 16. Cómo interceptar solicitud/respuesta de jabón sin procesar (datos) del cliente de WCF
- 17. UIProgressView color sin procesar
- 18. Abortar una respuesta HTTP/1.1 codificada en el fragmento
- 19. ¿Cómo se asigna el campo de atributo de un HttpServletRequest a una solicitud HTTP sin procesar?
- 20. Java: recibir una respuesta HTTP de varias partes
- 21. IE9 se niega a procesar la respuesta XML
- 22. ASP.NET: Obtenga * real * URL sin procesar
- 23. Enchufes sin procesar en Haskell
- 24. ¿No está obteniendo el cuerpo de respuesta para la solicitud de http en android?
- 25. Cómo devolver una imagen en una respuesta HTTP con CherryPy
- 26. POSTE SIN PROCESAR usando cURL en PHP
- 27. Publicar datos sin procesar con Python
- 28. node.js escribir la respuesta http a la secuencia
- 29. obteniendo el error java.io.IOException: El servidor devolvió el código de respuesta HTTP: 401 para
- 30. Obteniendo notificación cuando está limitada/sin límites a una sesión HTTP
¿Qué es exactamente lo que esperas que ver con esto que no se puede hacer con las maneras más fáciles de usar a la recepción de los datos? –
Quiero ver si el servidor está usando '\ n' en lugar de' \ r \ n' en sus respuestas. – Acorn