Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-03-2017
lago lago is offline
Miembro
 
Registrado: nov 2015
Posts: 40
Poder: 0
lago Va por buen camino
Error handling en Indy - idHTTP

Hola!, a ver si alguien puede ayudarme

Ando con XE7 y C++ y no consigo encontrar la manera de manejar los errores de este componente.

Básicamente necesito que cuando el servidor falle no diga nada... si el servidor esta online todo funciona bien, pero
cuando lo apunto a una dirección invalida como la que esta ahora "localhosts" necesito controlar el mensaje de Socket Error
que me da...

Código:
TIdMultiPartFormDataStream *stream=new TIdMultiPartFormDataStream();

 try
  {
      stream->AddFormField("idcliente", "IDLALALAL");
      this->Memo1->Lines->Text = IdHTTP1->Post("http://localhosts/miscript.php", stream);

	stream->Free();
	IdHTTP1->Free();
  }
  
	catch(const EIdHTTPProtocolException &E)
		{
		  ShowMessage("Error http");
		 MessageDlg(E.Message, mtError, TMsgDlgButtons() << mbOK, 0);
		}
He buscado mil y una de este tipo pero no consigo que entre en el "catch"...

Alguna sugerencia? gracias mil!
Responder Con Cita
  #2  
Antiguo 25-03-2017
lago lago is offline
Miembro
 
Registrado: nov 2015
Posts: 40
Poder: 0
lago Va por buen camino
Juraría que lo había probado pero resulta que ahora si funciona esto... A VECES.... no entiendo ná

Código:
catch (const Exception &)
{
 ShowMessage("Error http");
}
Responder Con Cita
  #3  
Antiguo 26-03-2017
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
prueba a poner esto a ver si suena la flauta

Cita:
catch (...) {

ShowMessage("Error de Http");
}
Responder Con Cita
  #4  
Antiguo 26-03-2017
lago lago is offline
Miembro
 
Registrado: nov 2015
Posts: 40
Poder: 0
lago Va por buen camino
Hola Snaked, gracias por responder... lo he intentado también pero nada, el caso es que me desconcierta por que aún siendo siempre el mismo tipo de error "host not found" a veces entra en esa condición y a veces no... me tiene frito
Responder Con Cita
  #5  
Antiguo 26-03-2017
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
lago: si te dice eso es porque no encuentra ese ordenador en la red..... sabes si tienes permisos abiertos para el firewall etc?

has probado a controlar el evento OnError o similar en caso de que falle el Connect? pasame el codigo si quieres y pruebo yo a ver si tambien me da ese errror

espera...he revisado tu codigo y donde pones Post("Http://localhosts no es con s al final sino "localhost" o prueba tambien a poner http://127.0.0.1/myscript.php"

Última edición por Snaked fecha: 26-03-2017 a las 13:36:13.
Responder Con Cita
  #6  
Antiguo 26-03-2017
lago lago is offline
Miembro
 
Registrado: nov 2015
Posts: 40
Poder: 0
lago Va por buen camino
Snaked, el error que da lo provoco apuntando el POST a una máquina inexistente para hacer que salte el error.
El código es el que puse en el primer post, a veces salta mi ShowMessage, y otras veces explota apuntando a

IdHTTP1->Post("http://localhosts/miscript.php", stream);

Por no poder conectar, por eso me tiene desconcertado, si entra en la condición debería entrar siempre y no a veces :?

Gracias por la ayuda
Responder Con Cita
  #7  
Antiguo 26-03-2017
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
Hola lago.....he estado mirando por internet y tengo estas páginas en las que se habla sobre eso..... miralas a ver si arrojasen alguna luz sobre el Indy-tema

http://stackoverflow.com/questions/3...implementation

https://sites.google.com/site/cppbuildermaster/t

y fijate como implementa aqui el procedimiento try catch con messagebox para el mensaje de error

Cita:
----------------------------------------------------
void __fastcall TSMTPThread::Execute()
{
try
{
idSmtp->Connect();
try
{
idSmtp->Send(idMess);
}
__finally
{
idSmtp->Disconnect();
}
}
catch(const Exception &e)
{
MessageBox(NULL, AnsiString(e.Message).c_str(), "SMTP Error", MB_OK | MB_ICONERROR);
}
}
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Última edición por Snaked fecha: 26-03-2017 a las 15:50:38.
Responder Con Cita
  #8  
Antiguo 26-03-2017
lago lago is offline
Miembro
 
Registrado: nov 2015
Posts: 40
Poder: 0
lago Va por buen camino
Gracias por las molestias Snaked, he visto los artículos que comentas y ya había visto algo similar, el resultado es el mismo, a veces salta el error y otras no, seguiré investigando... muchas gracias por tu tiempo
Responder Con Cita
  #9  
Antiguo 29-03-2017
Snaked Snaked is offline
Baneado
NULL
 
Registrado: sep 2016
Posts: 102
Poder: 0
Snaked Va por buen camino
hola Lago..... que tal vas??? has encontrado solucion al problema?
Responder Con Cita
  #10  
Antiguo 31-03-2017
lago lago is offline
Miembro
 
Registrado: nov 2015
Posts: 40
Poder: 0
lago Va por buen camino
Hola Snaked! perdona que se me pasó... de momento no, he tenido que lidiar con otras cosas y ha quedado ahi parado. Si consigo algo lo posteo aqui. Muchas gracias por tu interés ))
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Dudas con IdHTTP de Indy 9 vicvil Internet 12 06-11-2015 02:42:53
error: HTTP/1.0 400 Bad Request en IdHTTP Roger1978 Internet 0 23-07-2014 20:15:52
Error Unknown Protocol componente IdHTTP de Indy Bertifox2008 Internet 0 17-04-2009 01:10:24
WebBrowser con Indy idhttp sur-se Internet 2 10-10-2008 11:36:31
Indy IdHTTP Ejemplo andre Internet 1 11-02-2004 09:06:31


La franja horaria es GMT +2. Ahora son las 16:24:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi