Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-06-2016
tec tec is offline
Miembro
 
Registrado: dic 2009
Posts: 37
Poder: 0
tec Va por buen camino
como conectar con web service

Hola,

desde delphi 6 quiero conectar con servidor web y pasarle petición de operación y esperar respuesta en JSON.

ES posible en D6 ?? con que herramientas ??

Muchas gracias por adelantado.
Responder Con Cita
  #2  
Antiguo 15-06-2016
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.233
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
En esta serie de entradas se habla del tema, y en concreto en esta tienes implementado un cliente con Delphi 6 que acceder a un webservice y obtiene una respuesta JSON, la trata y la muestra. Todo ello usando las Indy.

Aquí tienes otro similar, en este caso accediendo a un servidor que requiere https.

__________________
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 15-06-2016
tec tec is offline
Miembro
 
Registrado: dic 2009
Posts: 37
Poder: 0
tec Va por buen camino
Lo he visto y es lo que necesito felicidades por lo bien explicado que está.
Pero con el delphi 6 profesional da error al compilar no encuentra el componente TXMLTransformProvider.

¿ Puede ser que porque es el profesional y no lo trae ?. ¿ Se puede descargar en algún sitio ?

Saludos y muchas gracias.
Responder Con Cita
  #4  
Antiguo 21-05-2019
PEIIB PEIIB is offline
Miembro
 
Registrado: mar 2016
Posts: 21
Poder: 0
PEIIB Va por buen camino
Hola buenas, hace unos días que estoy lidiando con el ejemplo de este hilo. De momento he conseguido leer los datos de una web api, mediante post y obtener el texto legible del Json, pero no consigo parsear los datos a un TclientDataset.
El código que tengo para ello, siguiendo el ejemplo de Neftalí és el siguiente:

Código Delphi [-]
procedure TForm2.ParseResponse(AObjResp: TlkJSONobject);
var
  objUserList:TlkJSONlist;
  objUser, objtmp:TlkJSONobject;
  i:integer;
  Str:String;
  cds:TClientDataSet;
begin
  // Limpiar el contenido
  cds := ClientDataSet1;
  cds.EmptyDataSet;
  showmessage(IntToStr(AObjResp.Count));     //Sí, hay 1032 datos

  // Objeto Check?
  if (AObjResp.IndexOfName('Check') <> -1) then begin       //Aquí da error    Access violation xxxx read of adress yyyy
    // Lo almaceamos en un tipo "lista"
    TlkJSONBase(objUserList) := AObjResp.Field['Check'];
    // Recorrer la lista de usuarios.
    for i := 0 to (objUserList.Count - 1) do begin
      // Objeto usuario
      TlkJSONBase(objUser) := objUserList.Child[i];
      TlkJSONBase(objtmp) := objUser.FieldByIndex[0];
      // Añadimos un registro al CDS
      cds.Append;
      try
        // Recoger los campos del objeto
        cds.FieldByName('id').AsString :=        VarToStr(objtmp.Field['id'].Value);
        cds.FieldByName('date').AsDateTime :=    VarToDateTime(objtmp.Field['date'].Value);
        cds.FieldByName('user_id').AsString :=   VarToStr(objtmp.Field['user_id'].Value);
        cds.FieldByName('admin_id').AsString :=  VarToStr(objtmp.Field['admin_id'].Value);
        cds.FieldByName('latitude').AsString :=  VarToStr(objtmp.Field['latitude'].Value);
        cds.FieldByName('longitude').AsString := VarToStr(objtmp.Field['longitude'].Value);
        cds.FieldByName('comment').AsString :=   VarToStr(objtmp.Field['comment'].Value);
        cds.FieldByName('type').AsString :=      VarToStr(objtmp.Field['type'].Value);
        cds.FieldByName('ip').AsString :=        VarToStr(objtmp.Field['ip'].Value);
        cds.FieldByName('from').AsString :=      VarToStr(objtmp.Field['from'].Value);
        cds.FieldByName('changed').AsString :=   VarToStr(objtmp.Field['changed'].Value);
        // Grabar
        cds.Post;
      finally
        cds.Cancel;
      end;
    end;
  end;

end;

Y el Json viene cargado con datos de este tipo:
Código:
[
  {
    "Check":{
      "id":"5cbe8e5b-9f0c-4c02-bc1b-4629bca5fb54",
      "date":"2019-04-23 04:02:35",
      "created":"2019-04-23 06:02:35",
      "modified":"2019-04-23 06:02:35",
      "user_id":"56657074-4e7c-4fe6-82b8-3b54bca5fb54",
      "admin_id":null,
      "latitude":"41.8696479797",
      "longitude":"2.4183871746",
      "comment":null,
      "type":"1",
      "ip":"31.4.188.115",
      "from":null,
      "changed":"0"
    }
  },
  {
    "Check":{
      "id":"5cbebab1-81bc-43c5-b244-5e4abca5fb54",
      "date":"2019-04-23 06:40:00",
      "created":"2019-04-23 09:11:45",
      "modified":"2019-04-23 10:12:18",
      "user_id":"56657074-4e7c-4fe6-82b8-3b54bca5fb54",
      "admin_id":"566e5a86-3aec-48a7-90d9-15b6bca5fb54",
      "latitude":null,
      "longitude":null,
      "comment":null,
      "type":"1",
      "ip":null,
      "from":null,
      "changed":"0"
    }
  },
  {
    "Check":{
      "id":"5cbeba9a-63f8-47d7-9903-5e4abca5fb54",
      "date":"2019-04-23 07:11:22",
      "created":"2019-04-23 09:11:22",
...
...
la línea:
if (AObjResp.IndexOfName('Check') <> -1) then begin
provoca un error Access violation xxxx read of adress yyyy

Podeis echarme una mano? Cualquier cosa que intento me da error y no se como continuar.

Gracias de antemano
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
Como consumir un web service que usa SSL AzidRain Internet 0 12-12-2013 21:38:02
Como pasar de TidHTTP con TWebModule a Web Service con XML ? rolandoj Internet 1 20-10-2008 18:45:48
Como crear un Web service (.WSDL) JuanErasmo C++ Builder 1 03-11-2006 23:31:57
Mi aplicacion como un Service kavisch Varios 2 03-05-2006 22:51:51
Service y Application Service Ezecool Varios 0 30-09-2003 19:48:30


La franja horaria es GMT +2. Ahora son las 13:38:58.


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