2010-09-01 21 views
6

me gustaría pasar una petición HTTP primas como:Proceso de solicitud HTTP prima

GET /foo/bar HTTP/1.1 
Host: example.org 
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; fr; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 
Accept: */* 
Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 115 
Connection: keep-alive 
Content-Type: application/x-www-form-urlencoded 
X-Requested-With: XMLHttpRequest 
Referer: http://example.org/test 
Cookie: foo=bar; lorem=ipsum; 

a un cliente HTTP.

Intenté cat raw.http | curl pero sin éxito.

¿Alguna sugerencia?

Thx.

Respuesta

17

los datos sin procesar en, datos primarios de salida:

nc example.org 80 < raw.http 

Si necesita tubería de los datos a través de algún programa:

cat raw.http | someprogram | nc example.org 80 

Manual page

+0

+1 asombrosamente simple ejemplo – tidwall

+0

esto es una respuesta engañosamente simple. Solo funciona en algunos casos. he usado esto y socat. Si el servidor responde con codificación fragmentada, solo obtendrá la primera respuesta, que puede estar en blanco. ¡Vine aquí buscando una respuesta correcta que no puedo encontrar en ninguna parte! – sillyMunky

+0

@sillyMunky Si tiene alguna pregunta nueva, utilice el botón Preguntar anterior. Por * Primera respuesta *, ¿te refieres al primer fragmento o la primera respuesta a una solicitud (con 'Conexión: Keep-Alive')? – Lekensteyn

4

está etiquetada La pregunta rizo, así que pensé ya era hora de que hubiera una respuesta curl

cat raw.http | curl "telnet://TARGETHOST:80" 

Para un uso normal solo necesita configurar el TARGETHOST para que coincida con el valor del encabezado "host".

Para mis propósitos (no es normal) estaba conectando un TARGETHOST que era una dirección IP con un servidor que estaba escuchando los encabezados del host de hosts específicos.

2

Tenga en cuenta que ninguna de estas soluciones funcionaría si necesita httpS en lugar de http. En este caso se puede enviar de esta manera:

$ cat raw.http | openssl s_client -connect server:443 
+0

thx para eso también, buena adición;) – abernier

+7

¿Cómo ve la respuesta enviada desde el servidor en este caso? –