FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
HTTP GET y HTTP POST utilizando WinInet
Bueno, como alternativa a Indy podemos usar Wininet. Podemos hacer Get, podemos hacer Post y maneja las cookies perfectamente incluso las de sesión. No tengo nada en contra de las Indy, es solo por dar alternativas, además no se pueden usar en el Turbo :( , aunque eso no es culpa suya.
Bueno, un poco de código para animar la cosa:
Un ejemplo de como usar lo anterior.
|
#2
|
|||
|
|||
Hola que tal..
He estado probando tu codigo y hay una parte en tu codigo que es: hNet := InternetOpen('Agente', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); por que: "Agente". |
#3
|
||||
|
||||
Pues "Agente" es el nombre que identifica al navegador a la hora de hacer la petición, puedes usar el que tu quieras, o utilizar el mismo que el internet explorer o el firefox para suplantarlos. Aunque creo que a la hora de hacer este tipo de programas es interesante identificarse correctamente, así el servidor sabe que el que esta accediendo es un "robot", "spider" o como lo quieras llamar y no un usuario normal. Esta información le puede resultar útil al hacer estadísticas o al programar sus paginas.
|
#4
|
|||
|
|||
Buenas,
he probado tu ejemplo y todo correcto pero mi caso es que tengo que enviar por HTTPS hacia un WebService y por el puerto 4343 (para servidores de pruebas) o por el puerto 4433 (para servidores producción). Tengo que enviar dos parámetros uno que es un código de referencia y el otro es código XML puro y duro. ¿Cómo hago que me use https y el puerto 4343 ó el 4433?. Un ejemplo de la url que uso es la siguiente: https://host:4343/WebServicesWeb/AqReceptorHTTP (srv pruebas) ó https://host:4433/WebServicesWeb/AqReceptorHTTP (srv. producción) Muchas gracias y saludos. |
#5
|
|||
|
|||
Buenas,
he probado tu ejemplo y todo correcto pero mi caso es que tengo que enviar por HTTPS hacia un WebService y por el puerto 4343 (para servidores de pruebas) o por el puerto 4433 (para servidores producción). Tengo que enviar dos parámetros uno que es un código de referencia y el otro es código XML puro y duro. ¿Cómo hago que me use https y el puerto 4343 ó el 4433?. Un ejemplo de la url que uso es la siguiente: https://host:4343/WebServicesWeb/AqReceptorHTTP (srv pruebas) ó https://host:4433/WebServicesWeb/AqReceptorHTTP (srv. producción) Muchas gracias y saludos. |
#6
|
|||
|
|||
Hola, ¿qué tal?
He probado el ejemplo y algo no funciona. Quizá sea por versión distinta de Delphi (yo tengo Delphi6), pero en la línea de código Código:
URLEncode(PostStrings.ValueFromIndex[i]); Código:
URLEncode(PostStrings.Strings[i]); Código:
Hola mundo <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name=vs_defaultClientScript content="JavaScript"> <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5"> </head> <body MS_POSITIONING="GridLayout"> <form name="Form1" method="post" action="webform1.aspx?parametro1=1&parametro2=julian" id="Form1"> <input type="hidden" name="__VIEWSTATE" value="dDwtNjU0MzcyMTk1Ozs+tEUMoOMBCErd5wWPW47ZHfAC2AI=" /> </form> </body> </html> Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1"> <meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1"> <meta name=vs_defaultClientScript content="JavaScript"> <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5"> </head> <body MS_POSITIONING="GridLayout"> <form name="Form1" method="post" action="webform1.aspx?parametro1=1&parametro2=julian" id="Form1"> <input type="hidden" name="__VIEWSTATE" value="dDwtNjU0MzcyMTk1Ozs+tEUMoOMBCErd5wWPW47ZHfAC2AI=" /> </form> </body> </html> ¿Alguna idea para solucionarlo? Gracias. Un saludo. |
#7
|
|||
|
|||
Ya sé lo que pasa.
Por alguna razón que desconozco el Post() falla porque la web no recibe los parámetros pasados. Sin embargo el Get() sí que funciona pasándole todo el chorro de parámetros seguido a la junto al URL. Un saludo. |
|
|
|