Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   Captura de EHTTPProtocolException (https://www.clubdelphi.com/foros/showthread.php?t=96701)

jmbarrio 14-05-2024 17:54:46

Captura de EHTTPProtocolException
 
Buenas tardes, al ejecutar el siguiente código me da un error en modo debugger HTTP/1.1 400 Bad Request, que no logro capturar en la excepción.
He desmarcado la propiedad RaiseExceptionOn500 dejándola a false, y tampoco la captura. ¿Qué puedo hacer para capturar la excepción?

Gracias, un saludo

Código Delphi [-]
try
   RestClient3.BaseURL := servidorWS + 'Facemi/Importar';
   RestRequest3.ClearBody;  //Si no se pone solo se puede ejecutar el post una sola vez
   RestRequest3.Body.Add(json,TRestContentType.ctAPPLICATION_JSON);
   RestRequest3.Execute;
   showmessage('Json de Facturas envíado corréctamente a la nube.');
except
  on E: EHTTPProtocolException do
      showmessage(e.message);
end;

jmbarrio 15-05-2024 11:42:59

Buenos días, es mi primera aplicación con webservice y como podéis comprobar ando muy , pero que muy perdido.

Lo que necesito es capturar el status y el body response que me envía la webservice cuando yo le mando el POST.

Me obceque pensando que el mensaje del status era un error.

¿Cómo puedo capturar el status y la respuesta de la webservice?

Perdón por las molestias y muchas gracias por vuestra ayuda.

jmbarrio 15-05-2024 11:55:29

YA esta todo OK, ya lo he encontrado.

Gracias, un saludo

Casimiro Notevi 15-05-2024 15:25:42

Cita:

Empezado por jmbarrio (Mensaje 555661)
YA esta todo OK, ya lo he encontrado.
Gracias, un saludo

Es buena costumbre explicar cómo se ha solucionado para que otros posibles usuarios con la misma duda puedan saberlo.

jmbarrio 15-05-2024 17:18:05

Buenas tardes, perdona que no lo haya escrito, pero como la solución no se correspondía con el título del hilo pensé que no era necesario. Mil disculpas.

La solución que he encontrado para lo que realmente necesitaba ha sido está, con las propiedades StatusCode y Content del componente RestResponse

Código Delphi [-]
if RestResponse3.StatusCode = 200 then  //Si la WS responde que todo OK
            begin
              sqlstr := 'update caalcl set cal_entregado = ' + '''' + 'T' + '''' + ' where cal_entregado = ' + '''' + 'S' + '''';
              with F_Data.FDQry do
                begin
                  Sql.Clear;
                  Active := False;
                  Sql.Add(sqlstr);
                  ExecSQL;
                end;
              showmessage('Json de Albaranes envíado corréctamente a la nube.')
            end
          else
            showmessage('Status Code: ' + RestResponse3.StatusCode.ToString + ' ' + RestResponse3.Content);

Un saludo.

Casimiro Notevi 15-05-2024 17:29:00

Cita:

Empezado por jmbarrio (Mensaje 555664)
La solución que he encontrado para lo que realmente necesitaba ha sido está, con las propiedades StatusCode y Content del componente RestResponse Un saludo.

Gracias por compartirlo ^\||/


La franja horaria es GMT +2. Ahora son las 13:33:03.

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