Como ver un request HTTP?

Iniciado por Vaagish, 5 Febrero 2014, 23:32 PM

0 Miembros y 1 Visitante están viendo este tema.

ivancea96

Citar"Content-Length: 3024\r\n"

Después de el último \r\n, envia los 3024 bytes, y listo.

Vaagish

Ojala!! Ya lo intente todo! todooo!! Vos crees que el header este bien? El tamaño del archivo esta correcto,, lo único que dudo es si solo se envía el tamaño del archivo en Content-Length, o el tamaño del archivo mas el tamaño del request.. no se si me explico.. (Igual ya lo intente de las dos formas..)

Saludos!

ivancea96

CitarPOST /Proyectos/Uploads/uploader.php HTTP/1.1\nhost: localhost

Tengo entendido que no importa en algunos servidores enviarles \n sin el \r, pero podrías probar:

CitarPOST /Proyectos/Uploads/uploader.php HTTP/1.1\r\nHost: localhost

EDITO: Si no te va, prueba acambiar localhost por tu IP local.

Vaagish

CitarPOST /Proyectos/Uploads/uploader.php HTTP/1.1\r\nHost: localhost

No me habia percatado de ese \r,, pero igual no funciona..

Esto es lo que le envio literalmente al servidor:

CitarPOST /Proyectos/Uploads/uploader.php HTTP/1.1
host: localhost
Content-type: image/jpeg
Content-Length: 3024

ÿØÿà JFIF      ÿÛ ,,       

   


 "" $(4,$&1'-=-157:::#+?D?8C49:7




7%%77777777777777777777777777777777777777777777777777ÿÀ  \ {" ÿÄ              ÿÄ B           !1A"Qa2qB'¡±#3brÁÑáRT,²$5Csƒ"ÂÒÓÿÄ             ÿÄ             AÿÚ   ? :M­ä\ç™{Pñ'¸+¶Õ}ÆàžÀB.á@ß­suYu(e\äœÕÉ¿ÏÞ£?cUÆþm±šÆäƒ]Ï1û‡ÛU+÷ö©s }(ˆOº™ùE+ 'K§9R~ª ãng|Ö¬"õ2~é¡ão;ŠºVý Ÿº
 k#Ëw   ôOáLf"$c°¥v{]EûŸÂ"vÍZãEò¿Ï¿ÕNâ °.Øy³Œ\ÖFfðÛmù½iõ«âeÊó Ã*:'YS¶ÿ zLß»vÇð5Î]?üm÷ýùè±+ŸÕéÇüîðÍwžóü%¸ÿ «ý+£›8IðäÉ?    Qðqêj×|†Û#úR¶¸eÝÏ'|çm"áÛçTÆØ"?U   &«5Ä_ Ô;jP0.ǦB¸Ï£†~SÌNçµDÊ¿I±I_U?BÞSûÄ
¬_]IðÁüÜŸåL4êi"±÷¥óJ»äméKåšðåLˆ¹þâ<Ô^ÃP'>fypw`™ü*âjFnYIÇZ"N6QÝq@G _ÜNycve,,Á¿Z8ø4 eê>!^g änU GO~µq4¢ØòÎŒÛ ¸'­$'¶œÕâÂÎÛk]A«ø¿ú
óò~fÀú<')ÿ I«,,¢t,qÌ8ö§   v±ÈŽ§9Î3¿Ê—ZŦþsI:0aõJ«Š§[ÐätòÅ­Ç!åyŸÃE8ê]|µŸ+é³æÙ..õe,'ßÏñßï¥í¯pØb‰'Úøãî5ã<G¡Þhš»Ùj8–nEH   `ê{,}ò>£A8ý[}•¦^ý¢$ WÄ8õÍr#¼*Ò)!zsT™ù3@éA>£mÁnf–¦4)aq...ùU‡"/*§_º"K¬9Ú€¬h8jºÍǃ§Ä£cÊ¿3L4S§—¦Õl0ÀÖóH.BÍ_Ñ2ã˜äç¦:ûÓ+>'Iou6•!cÆ7ˆã]·ÈÈôë\¸Ðôû›kˆZ+›ãu;?/ˆ;|YÎù;ýµdM"'öÛ¾1Önç÷o™ú±Ö,,Ž(nî(àIÄë²û"Nÿ üu¬ßªÖ½äoÃÖˆRÎD³‰Êà"W}*ØÄbµð­ãS¸   žcêi·­‡‡ù­Ý¼n2X8ʐsŽ£~"¼éwq$'cöŽ?...NÎÊüKhÑ݆9'óËA¯µÉm¤÷\²Jªbk‡'HÎã OlÖ ôYb×µ›»IÐør[$ˆ'ËʹܽvÅi¸bÒ];Y†çQ)á[‡vd à•#
é×;úU××ÿ škךžŸrm'ã•f!m²0>ŽF;œàU@š ®±¢@á$ñãý¦Tò¶:ž»c>¨ÖxbÅôùq"ÀŽ¤9]—ã cÖ«¼âËÉå–SupÉऱ l'Ä Ÿ`¦¾±¾i"y]d¸wV N<»wŒÀßØš oDVþ Å­ì-ÒÞr ]‰8ïœíØ )?,µ¢âhÚK"wA£¹,jWfËÜý,3c·OzMËò .[¸Hú
é1™ÙêI«±í_c$5Ñ2 "Ê:ã®+{ÁZ‡...¦Þ[ÄZl'$c IéÇÛê¬}­¬|ñÝ;¢a"¨5°á‹{+2‰r§™Éæpžß€Ú›äÓääÓ­Í3I!
2ǐtfc¶{gr    ·Ö5‹),¥‰ •-mÁ ÄÁŸ%‰`9¿N¤tkKû†ž)ž;—
<X$ÃyzŽÛ©ŽÂSÛÞÜޝZâK™Ó'$'Œ ×1Û;oT ‡CҮшHZHð$DpÆ6#88ï½¢ZÛ‹Õ·Òå¹<à¬Í$q¢¯(b<û¸ðkYgÂpÍ~÷º£¶¡3Eárº(õQשë2p75.$Ö´Ž‰¡±·€ê®á PN|äoԝºïÚƒ;ªifšê{E¼vP×ÅŽ2=>"ž¤Œž´âÖvk x§ž)ÉüÓF™ŸÞB¥¹æ}†õ‰¶Y.ïžòìÍtÄ'â¾ycÏ¡TQè6úëyÁ×–Ñ4Ûº"wqô˜÷û¨ñMÕ¬Z"Ë©iº|@,lÖs@,MÉÝ£Û/^loŒù[ˈ¯PÂ'Fb2m(Ü:7"Ñ{c°È§k¬[ëWºÿ ,,·ñéˆ<O*($ÈØéœ)99èl"óé6ÒGg4ðY^`ÎÉÈJWäd+ŒgªûÔ Jò¼Ù·‹ž˜.Èæl‡lä÷ÏJ>æê;[Y–+¸±DVHA ë#¶rq°"¾'híÔYi©Éܐ¹sê}‡¹=úž"›R{++KžHâ7S®yݾRÒ#nƒêïTløêÎN³ð"ò´ª, 0ÂK×}È¿m`±ó§<SÅ   Äqi°ÙZÏkki   ,³6YælsŸq¶Ç¾M#PyG_¶R|½Ípš›ÝMTÙÆÃoaDFeºhÌ–.ÂHúÜ|¾ÊSY¦·K®³°Àg ô8§:mõ¬9†ì´¶RQÓëþ´EâÛNè–ÚÕ"wîJœôÀ'áÍEbÓQ¿¼·WGoþÚǍ¸ŠÅƒTŸè±È§ÿ ØÚû€RÆÊþ>åçì8¡'Ñî—"ë,,®Óö¡Ü¦Š×pÇå[Ô,Y®&Éá™61žôÒ×òŽÑÜbûT€(ß—"²¼1£Û›V29Óâi   d¸8qº®û€­µ –¸^#±NlyICÿ Tm5Þ(‹]¶ˆYÝxðugîÃçKlµy¬lîb¶øäõÁéRáþ´³¶KUÕè)''Ñ|YŸ\d/ßGjú
ØY™ÞÝ,^3Î"\Ým'¸çÎ|nª   ÷pPÒ'á×½{FÓ‰˜øŠ¡9œòáŽù 0[nQ²¶ÇGÜ~aÂÖ7zê¼sÝI<1:³?&zäs"'OrM¦ßp%ãXkšÍÄ   f¡¢Ò_›ôr»€LžÄûõlçxÛ‰‹u...¸H pRÖ'ëƒñ;~ÑÀù f-"¼¿»¿r©þÇjNÐÂq'ûMÔš® Hã%¹2Näž´lpm×¾¦ ¯QŒzV±Då«<!íöÔ€lü-šàCŽ´E €Ú¢S#Q@@>ÕðèGlQ@¼
߃ó¡ŸN...³...Å3%»cÒ¤Tr+z¶
hôù­›žÖialõÊ'öQ°ê|ImúwPÓó—?‰Å ðÉÀÈþ•`;å@ÒÊ7[ÚElb°˜(lj,oÌçÔáÀÉö|"þ,Eå[
'çàÉÿ Ò'ª,   ôÍL °v cwÇœmzŒVQ±k¦?ÌAo¾Mmu¨LfÔî繕º¼Ò?}€2*ÈÀ"
±Ÿ¸P
Œp|·BDÄoWÃ-û$×@ù»4G1Èô®äã£p)¬ZT2BŽd›,¡˜uû+uÂÜ/¤I¥F׉;»3•C¸ÇN›W.îÙÕÇÕk¸óÁæÛ=7ÕÜ)þè¯d^Ñö]¡ù¿ʠÚ'ŒUtëP?ä¯ò¯4ùÜoåoê¯ÿÙ

Esta clarisimo cual es la imagen,, no intenten copiar y pegar a ver si esta bien el binario, porque les va a dar error,, pero si lo hago yo,, con mi archivo funciona bien..

ivancea96

Mira que cabecera envía el navegador al enviar una imágen, por ejemplo.

PD: Una imagen, se le envía con una varible en el method POST:

\r\n\r\n
var=<los datos de la imagen>

dRak0

Proba abriendo con fopen la imagen , abrila con 'rb'  , leela toda y guardala . Manda la informacion desde esa variable.

ivancea96

Perdon por lo que dije de la variable, me confundí :3

Cogí con WPE los paquetes del envío de una imagen, y esta fue la cabecera,si te sirve:

POST /XXX.php HTTP/1.1
User-Agent: XXXXXXXXXX
Host: XXXX.es
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: es,en;q=0.9,es-ES;q=0.8
Accept-Encoding: gzip, deflate
Referer: http://XXX/XXX.html
Connection: Keep-Alive
Content-Length: 170457
Content-Type: multipart/form-data; boundary=----------HCnR65lo15kSYiPLN9Rgw9....------------HCnR65lo15kSYiPLN9Rgw9
Content-Disposition: form-data; name="file"; filename="XXXXX.png"
Content-Type: image/png

<AQUI LA IMAGEN>


Muchos campos de la cabecera son innecesarios, pero bueno, te la pongo entera.

Y bueno, como dijo jednak, la imágen abrela desde el programa, y ve enviando su contenido, no la abras como txt y la copies ni nada así jaja

PD: Si la abres, abrela como BINARIO.

#!drvy

@Ivancea, hasta ahí el había llegado e.e

Vaagish, tienes que enviar mucho mas no solo eso. Tienes que enviar connection, content-length, content-type (2 veces), boundary, content-disposition, accept... y recuerda que después de content-type van 2 \r\n y al final también de todo también.

Ademas te vendría bien imprimir los headers y el contenido que te devuelve..

Saludos

Vaagish

#18
CitarCogí con WPE los paquetes del envío de una imagen, y esta fue la cabecera,si te sirve:

Gracias,, yo había echo algo parecido y obtenido una cabecera parecida..

CitarVaagish, tienes que enviar mucho mas no solo eso. Tienes que enviar connection, content-length, content-type (2 veces), boundary, content-disposition, accept... y recuerda que después de content-type van 2 \r\n y al final también de todo también.

Ademas te vendría bien imprimir los headers y el contenido que te devuelve..

El boundary ese me esta volviendo loco! --> http://stackoverflow.com/questions/4656287/what-rules-apply-to-mime-boundary

Estuve probando con todos esas cabeceras y tampoco... He llegado a una conclusión: No es para nada aconsejable (sin estar completamente seguro) hacer esto como lo estoy haciendo yo,, por lo que veo, un servidor puede requerir ciertas cabeceras obligatorias, y a lo mejor otro servidor, otras.. yo aunque copie todas esas cabeceras, es probable que me falte un \r o un \n.. y solo por eso,, o por un espacio,, o por el mas mínimo detalle,, no funciona.. no me parece para nada practico,, vaya a saber uno como se la ingenia el navegador,, pero le sale bien su trabajo jejeje

Al final voy a enviar el archivo como una secuencia de datos binarios,, y después lo voy a unir con PHP y escribir el archivo en disco. Lo único que me preocupa es que el método POST acepte caracteres raros.. Asi me evito todas esas cabeceras complicadas..

Saludos!! Gracias por su tiempo!  ;D




EDITO: No es posible hacer lo que queria,, tenia la ilusion de poder hacer algo asi:

POST /Proyectos/Uploads2/uploader.php?PARTE1=[DATOS BINARIOS] HTTP/1.1\r\nHOST: localhost\r\n\r\n

POST /Proyectos/Uploads2/uploader.php?PARTE2=[DATOS BINARIOS] HTTP/1.1\r\nHOST: localhost\r\n\r\n

...

O sea, enviar el archivo por partes, pero [DATOS BINARIOS] NO es una opcion dentro de una variable...

#!drvy

No tienes alguna libreria que lo haga por ti ? Por ejemplo curl es bastante famosa y esta en varios lenguajes.. con un par de lineas subes archivos o parseas paginas ·_·

Saludos