es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de conexión con TIdHTTP en la aplicación de Delphi. ¿Cómo solucionarlo?

Tengo un software que lleva funcionando sin problemas durante 2 años. Este software se conecta a nuestro servidor remoto cada 5 días para comprobar las actualizaciones de versión y el estado de la licencia de los usuarios.

Pero desde ayer, de repente, ha comenzado a dar un error al conectar con nuestro servidor remoto. Lo confuso es que el error sigue cambiando. La mayoría de las veces, el error es:

Conexión cerrada correctamente.

Pero a veces también se informa de otro error, que es:

Error de socket # 10054

Conexión restablecida por el par.

Aquí está el código que estoy utilizando:

Http := TIdHTTP.Create(nil);  //Crear objeto HTTP
Http.Request.UserAgent := 'Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0';
Http.ReadTimeout := -1;
Http.HandleRedirects := True;

Response := TStringStream.Create();
Params := TStringStream.Create('', TEncoding.UTF8, False);
Params.WriteString(Format('data=%s', [TNetEncoding.URL.Encode(JsonData)]));
Http.Request.ContentType := 'application/x-www-form-urlencoded';

try
  Http.Post(Url, Params, Response);  //en el momento en que se ejecuta esta línea, se genera una excepción de error
except on E: Exception do
  ShowMessage(E.Message);
end;

¿Alguna idea de cómo resolver este problema? Estoy utilizando Indy 10.6.2.5366 y Delphi Rio 10.3.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Los mensajes de error que estás viendo sugieren que el servidor está cerrando la conexión de forma inesperada. Esto podría ser debido a varios factores, como problemas de red o problemas de configuración del servidor.

    Aquí tienes algunos pasos que puedes seguir para solucionar el problema:

    1. Verifica los registros del servidor: Comprueba si hay errores o advertencias registrados en el lado del servidor que puedan ayudar a estrechar la causa del problema.

    2. Verifica la conectividad de red: Asegúrate de que la máquina cliente pueda conectarse al servidor y de que no haya problemas de conectividad de red. Verifica la configuración del firewall y las configuraciones de red para asegurarte de que el cliente pueda comunicarse con el servidor.

    3. Actualiza a la última versión de Indy: Intenta actualizar a la última versión de Indy para ver si hay correcciones de errores o mejoras que puedan resolver el problema.

    4. Aumenta el tiempo de espera de lectura: Has establecido el tiempo de espera de lectura en -1, lo que significa que no hay tiempo de espera. Intenta aumentar el tiempo de espera de lectura a un valor más alto para ver si ayuda.

    5. Utiliza otro cliente HTTP: Intenta utilizar otra biblioteca cliente HTTP para ver si el problema persiste. Si el problema solo ocurre con Indy, podría ser un error en la biblioteca.

    6. Contacta con el administrador del servidor: Si ninguna de las soluciones anteriores funciona, contacta con el administrador del servidor para ver si pueden proporcionar alguna información sobre el problema. Podrían identificar problemas de configuración del servidor o problemas de red que estén causando los errores.

Comments are closed.