Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-11-2021
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Convertir codigo INDY en REST

Buenas a todos.
Tengo el siguiente codigo usando INDY para enviar datos en JSON a un servidor REST y esperar otro JSON en respuesta.
Código Delphi [-]
            ReqJson := TStringStream.Create(jData.ToString, TEncoding.UTF8);
            try
                DM_CFE.IDHTTP_Doc.Request.ContentType             := 'application/json';
                DM_CFE.IDHTTP_Doc.Request.CustomHeaders.FoldLines := False;
                DM_CFE.IDHTTP_Doc.Request.CustomHeaders.Add('Authorization:' + cAuthCode );
                RespJson := DM_CFE.IDHTTP_Doc.Post(URL, ReqJson);
            except
                on E: EIdHTTPProtocolException do
                begin
                    jData     := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes( E.ErrorMessage ),0) as TJSONObject;
                    cErrorCfe := jData.Get('developerMessage').JsonValue.Value;
                end;
                on E: Exception do
                begin
                    jData     := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes( E.Message ),0) as TJSONObject;
                    cErrorCfe := jData.Get('developerMessage').JsonValue.Value;
                end;
            end;

Mi problema es que este codigo en una pc funciona y en otra de la misma red da error.
Me gustaria convertirlo a los nuevos componentes REST. Lo he hecho de esta manera pero no estoy seguro si me falta algo
Código Delphi [-]
            
            DM.Rest_Client_Pedido.BaseURL                := Url;

            DM.Rest_Request_Pedido.Params.Clear;
            DM.Rest_Request_Pedido.Params.AddItem;
            DM.Rest_Request_Pedido.Params[0].name        := 'Authorization';
            DM.Rest_Request_Pedido.Params[0].value       := cAuthCode;
            DM.Rest_Request_Pedido.Params[0].Kind        := pkGETorPOST;
            DM.Rest_Request_Pedido.Params[0].Options     := [TRESTRequestParameterOption.poDoNotEncode];

            DM.Rest_Request_Pedido.Params.AddItem;
            DM.Rest_Request_Pedido.Params[1].name        := 'body';
            DM.Rest_Request_Pedido.Params[1].value       := jData.ToString;
            DM.Rest_Request_Pedido.Params[1].ContentType := ctAPPLICATION_JSON;
            DM.Rest_Request_Pedido.Params[1].Kind       := pkREQUESTBODY;

            try
                try
                    DM.Rest_Request_Pedido.Execute;
                except
                    Application.MessageBox(PChar('Se produjo un error.' + #13#10#13#10 + 'Reintente por favor.'), PChar('ATENCION !!!'), MB_OK + MB_ICONWARNING + MB_TOPMOST);
                    Abort;
                end;
            finally
            end;

Me pueden indicar donde esta mi error al convertir ese codigo ??

Gracias

Última edición por lbidi fecha: 15-11-2021 a las 16:49:40.
Responder Con Cita
  #2  
Antiguo 15-11-2021
Avatar de lbidi
lbidi lbidi is offline
Miembro
 
Registrado: oct 2003
Ubicación: Montevideo- URUGUAY
Posts: 417
Poder: 21
lbidi Va por buen camino
Gracias ya encontre mi problema.

Esta linea
Código Delphi [-]
DM.Rest_Request_Pedido.Params[0].Kind        := pkGETorPOST;
la debia cambiar por
Código Delphi [-]
DM.Rest_Request_Pedido.Params[0].Kind        := pkHTTPHEADER;

Saludos
Responder Con Cita
  #3  
Antiguo 16-11-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Para estas cosas lo más fácil es realizar las peticiones con RestDebugger y de ahí pasar el código (la propia aplicación genera código).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



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
Convertir codigo c# a delphi Delphi01 .NET 3 22-05-2018 00:47:45
Convertir Codigo PHP en DELPHI irvingl PHP 4 24-04-2013 20:05:31
Indy velocidad de transferencia, por codigo. JXJ Varios 2 13-08-2008 22:49:17
Indy 10 Codigo HTML incrustado ANALBA Internet 0 24-07-2008 11:00:20
Convertir codigo Delphi a Builder _Willa C++ Builder 3 15-02-2008 11:37:10


La franja horaria es GMT +2. Ahora son las 18:06:48.


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