Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-05-2023
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
gracias por responder.....
estuve haciendo las pruebas via postman y ya funciona....
el tema aqui en delphi es....
uso compronentes REST para conectarme y obtener el token
debo usar otros componentes rest para enviar el archivo? asumo que si
el archivo que pretendo enviar en un txt
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 09-05-2023
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.287
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
Cita:
Empezado por oscarac Ver Mensaje
el tema aqui en delphi es....
uso compronentes REST para conectarme y obtener el token
debo usar otros componentes rest para enviar el archivo? asumo que si
el archivo que pretendo enviar en un txt
Esto es como plantear ¿Debo usar 2 componentes de TQuery para un INSERT y un SELECT o puedo usar el mismo?
Pues efectivamente puedes hacer las 2 cosas, según lo que te interese por comodidad, legibilidad, facilidad,...

* Si usas un sólo componente lo configuras para la primera operación y luego para la segunda.
* Si usas 2 diferentes, pues ya puedes tener configurado cada uno con sus propiedades.

En la segunda tendrás menos código seguramente, pero ambas son igual de buenas, dependiendo de los que prefieras hacer. Vamos que va a gustos la cosa...
__________________
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
  #3  
Antiguo 09-05-2023
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
exactamente, pero como los parametros los obtuve de restrequest, entonces no conozco el contenido al 100%

podrias ayudarme en una explicacion paso a paso como usar 2 componentes (teniendo en cuenta que en el primero ya logré la conexion y tengo el token)

Código Delphi [-]
 varTk := JsonValue.GetValue<string>('data.data.tk');
aqui tengo el token
tengo un archivo de texto en d:\archivos\
quiero enviarlos
segun veo en postman debo usar
bearer token
content-type forma-data
en el body un key de nombre archivo tipo file y en el value el nombre del archivo

como replico esto en delphi?


primera vez q estoy usando rest, no he tenido experiencias previas...
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 09-05-2023
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
actualizacion :

agregue el componente

OAuth2Authenticator
en el restclient2 asocie el componente en la propiedad "authenticator"

cambie el Token Type = ttBEARER

ya se conecta al repositorio donde debo colocar el archivo....

ahora investigar como subir el archivo de texto
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 12-05-2023
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
continuo con mi problema

con esta parte me conecto al endpoint

Código Delphi [-]
  RESTRequest1.Execute;
  jValue := RESTResponse1.JSONValue;
  Memo1.Text := jValue.ToString;
  Branch := jValue.ToString;

  st := Memo1.text;
  JSonValue := TJSonObject.ParseJSONValue(Branch);
  Label1.Caption := JSonValue.GetValue<string>('data.mensaje');
  Label2.Caption := JSonValue.GetValue<string>('data.data.tk');
  OAuth2Authenticator1.AccessToken := JSonValue.GetValue<string>('data.data.tk');

este es el archivo q quiero enviar
localfile := 'd:\desarrollo\concesiones\servicial\aris\envios\LURIN-09052023.txt';

primer intento fallido
Código Delphi [-]
{  jsRequest := TJSONObject.Create();
  jsRequest.AddPair('file', 'archivo');
  jsRequest.AddPair('value', localfile);
  RESTRequest2.AddBody(jsRequest);
 }

segundo intento fallikdo
Código Delphi [-]
RESTRequest2.AddParameter('archivo', localfile, TRESTRequestParameterKind.pkREQUESTBODY);


tercer intento fallido
Código Delphi [-]
//  RESTClient2.Params.AddItem('name', 'file', TRESTRequestParameterKind.pkGETorPOST, [], TRESTContentType.ctMULTIPART_FORM_DATA);
//  RESTClient2.Params.AddItem('archivo', localfile, TRESTRequestParameterKind.pkGETorPOST, [],

cuarto intento fallido
Código Delphi [-]
//st:=('{"archivo": ' + localfile + '}');
//RESTRequest2.AddBody(st);

quinto intento fallido
Código Delphi [-]
{RESTClient2.Params.AddItem; //Adds a new Parameter Item
RESTClient2.Params.Items[0].name := 'archivo'; //sets the name of the parameter. In this case, since i need to use 'data=' on the request, the parameter name is data.
RESTClient2.Params.Items[0].Value := localfile; //Adds the value of the parameter, in this case, the XML data.
RESTClient2.Params.Items[0].ContentType := ctMULTIPART_FORM_DATA; //sets the content type.
RESTClient2.Params.Items[0].Kind := pkGETorPOST; //sets the kind of request that will be executed.
 }
Código Delphi [-]
RESTRequest2.Execute;
Memo2.Lines.Add(RESTResponse2.Content);
JSonValue.Free;

mi razonamiento es el siguiente....
si en postman coloco el archivo en el body (form-data)
el key es "archivo" y el value es el nombre del archivo

el tema es que el archivo es de tipo "file"

creo que casi todo esta bien.... incluso cuando pruebo con postman (sin enviar el archivo o archivo vacio) me devuelve el mismo mensaje que en delphi, parece que solo tengo que descubrir como meter en el body del request los parametros

o será que ya me hice un mundo en la cabeza.. y no puedo ver la solución
__________________
Dulce Regalo que Satanas manda para mi.....
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
Post Con Demora jerry_mdq Tablas planas 35 05-05-2011 19:53:56
POST sin boton ZayDun HTML, Javascript y otros 1 19-04-2008 11:33:46
IBDatase Insert Post Edit Post ariefez Firebird e Interbase 4 12-10-2005 01:53:04
After Post en interbase jgutti Firebird e Interbase 2 09-03-2005 06:00:12
cancelar post?? ebeltete SQL 9 17-06-2004 22:46:19


La franja horaria es GMT +2. Ahora son las 13:00:04.


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