¿Cómo recuperar mi propio http en linux?

Iniciado por Ragnarok, 10 Enero 2011, 02:56 AM

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

Ragnarok

Puede ser un poco raro, pero tengo que hacerlo...

He rellenado un formulario bastante largo, me ha llevado el suficiente tiempo como para no querer hacerlo otra vez por nada del mundo. Lo he hecho en una ventana de firefox, pero desafortunadamente no tengo instalado el http live headers ni httpfox ni nada que me permita ver los datos enviados, y para instalarlos me temo que tendría que reiniciar el firefox y por tanto perdería los datos. Dando hacia atrás en el historial no me recupera los datos, me ha sorprendido mucho, pero así es. Sólo puedo darle a recargar para que se vuelvan a enviar (con la esperanza de que no se estén enviando de manera incorrecta y pueda recuperarlos así).

Así que, cuando le de a reenviar querría recuperar los datos de esa petición post, ¿cómo podría hacerlo?

Tened en cuenta que tengo abierto el firefox y tengo que mantenerlo abierto, reiniciar o similares no es una opción.

He instalado wireshark, pero de momento no me ha servido de nada, no me lista ninguna interfaz como disponible, aparte no quiero snifar todo lo que pase por mi wifi, sólo quiero recuperar lo que estoy mandando en ese formulario.

Estoy pensando en hacer un pequeño servidor que escuche en el puerto 80 y guarde las peticiones y cambiar el fichero hosts para que cuando recargue el sitio el post vaya a localhost y recuperarlo de esa manera, pero esperaba que hubiera algo que pudiera hacer más rápidamente.

Creo que voy a ir empezando con el tema de los sockets...

Muchas gracias desde ya.

PD: si encontrara algo como esto http://www.java2s.com/Tutorial/CSharp/0580__Network/AsimpleHTTPechoserver.htm hecho en un lenguaje de programación para el que no tenga que instalarme el compilador lo tendría ya hecho... al final va a ser sencillo y todo.

PD2: al final lo he hecho con python, todavía tengo que pasar el texto del formato de URL con + en lugar de espacios y cosas como %C3%9A pero ya no tengo que volver a escribirlo.

éste es el código, es un poco paranoico porque la función lo guarda en un fichero además de retornarlo, pero es lo que tiene.

Código (python) [Seleccionar]
import socket
import sys
from pickle import load, dump

def dataget(HOST, PORT):
 s = None
 for res in socket.getaddrinfo(HOST, PORT, socket.AF_UNSPEC,
                socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
   af, socktype, proto, canonname, sa = res
   try:
     s = socket.socket(af, socktype, proto)
   except socket.error as msg:
     s = None
     continue
   try:
     s.bind(sa)
     s.listen(1)
   except socket.error as msg:
     s.close()
     s = None
     continue
   break
 if s is None:
   print('could not open socket')
   sys.exit(1)
 conn, addr = s.accept()
 print('Connected by', addr)
 datas=[]
 while len(datas)<10:
   data = conn.recv(1024)
   if not data: break
   datas.append(data)
   with open('file.txt', 'wb') as f:
     dump(datas, f)
   yield(data)
 conn.close()


Viene en la documentación oficial. http://docs.python.org/py3k/library/socket.html
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones