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 26-03-2012
marcosPedraza marcosPedraza is offline
Registrado
NULL
 
Registrado: oct 2011
Posts: 7
Poder: 0
marcosPedraza Va por buen camino
Uno aunque sea un Ejemplo de como enviar xml con soap

Buenos Días Señores:
Hace un tiempo un cliente me pidió que trabaje sobre webservices ya desarrollados al principio para mi era chino básico ya que nunca trabaje sobre ello, leyendo en el foro y tambien el libro la cara oculta de delphi 6 de martenns el explica como realizar un cliente sobre soap, todo bien lo entendi bastante bien es mas hice un ejemplo bajando los wsdl de la pagina xmethods entendi el ejemplo como trabaja con thttprio etc. pero no entiendo como enviar realmente un archivo xml a través de soap, no quiero utilizar componentes de terceros se que delphi tiene sus xmldocument y necesito un ejemplo real para el envio el archivo xml de ser posible que trabaje con xmldocument el archivo a enviar es algo asi:
Código:
<Estados>
          <ListaEstados >
                      <Estado>
                            <Codigo>(Código  del Estado)</ Codigo >
                            < Nombre >( Nombre  del Estado)</ Nombre >
                      </ Estado > 
          </ ListaEstados >
</ Estados >
Gracias...ahh, trabajo con Delphi 7.0

Última edición por Casimiro Notevi fecha: 26-03-2012 a las 15:04:32.
Responder Con Cita
  #2  
Antiguo 27-03-2012
CSIE CSIE is offline
Miembro
 
Registrado: feb 2008
Ubicación: Universo paralelo
Posts: 69
Poder: 17
CSIE Va por buen camino
No entiendo muy bien tu pregunta, pero veamos: un servicio soap lo que hace es publicar un API, delphi tiene un asistente que te permite hacer el wraper para consumir ese API, y nosotros, como programadores, lo que podemos utilizar son esas clases, interfaces o métodos que nos ofrece ese servicio.

Por lo que, si lo que quieres es enviar un archivo al servicio, debes de comprobar si el api del servicio tiene algún interface para hacerlo.

Mira este hilo y los enlaces que lleva, al igual te ayudan más que yo: http://www.clubdelphi.com/foros/showthread.php?t=71490

Dicho esto, ¿porqué no explicas mejor cuál es tu problema?
Responder Con Cita
  #3  
Antiguo 28-03-2012
marcosPedraza marcosPedraza is offline
Registrado
NULL
 
Registrado: oct 2011
Posts: 7
Poder: 0
marcosPedraza Va por buen camino
Este es el archivo wsdl

Estimado csie, pasa que estaba leyendo desde varias paginas mucha bibliografia y me marie, en fin cuando veo el wsdl y la funcion que quiere mi cliente, a ver si me corriges, llama a una funcion execute donde como uno de los parametros va Readfilexmls del tipo widestring, ¿es ahi donde mando el xml?, saque parte del codigo porque no me permiten poner enlaces web solo fue una linea


unit aupload_editar_cliente;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

type

upload_editar_clienteSoapPort = interface(IInvokable)
['{DA9A95AB-8E31-9087-54FC-02AD2AF06C5C}']
function Execute(const Idcompra: Integer; const Readfilexmls: WideString): WideString; stdcall;
end;

function Getupload_editar_clienteSoapPort(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): upload_editar_clienteSoapPort;


implementation

function Getupload_editar_clienteSoapPort(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): upload_editar_clienteSoapPort;
const
defWSDL = 'C:\Documents and Settings\Administrador\Escritorio\webservice\aupload_editar_cliente.xml';

defSvc = 'upload_editar_cliente';
defPrt = 'upload_editar_clienteSoapPort';
var
RIO: THTTPRIO;
begin
Result := nil;
if (Addr = '') then
begin
if UseWSDL then
Addr := defWSDL
else
Addr := defURL;
end;
if HTTPRIO = nil then
RIO := THTTPRIO.Create(nil)
else
RIO := HTTPRIO;
try
Result := (RIO as upload_editar_clienteSoapPort);
if UseWSDL then
begin
RIO.WSDLLocation := Addr;
RIO.Service := defSvc;
RIO.Port := defPrt;
end else
RIO.URL := Addr;
finally
if (Result = nil) and (HTTPRIO = nil) then
RIO.Free;
end;
end;


initialization
InvRegistry.RegisterInterface(TypeInfo(upload_editar_clienteSoapPort), 'SGTallerWeb', 'UTF-8');
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(upload_editar_clienteSoapPort), 'SGTallerWebaction/AUPLOAD_EDITAR_CLIENTE.Execute');
InvRegistry.RegisterInvokeOptions(TypeInfo(upload_editar_clienteSoapPort), ioDocument);

end.
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 asignar el tamaño a un fichero aunque este sea de 0 kb kenychy C++ Builder 9 19-11-2010 16:45:15
Como listo el grupo de administradores, aunque le cambien el nombre l30 API de Windows 0 03-12-2007 21:56:47
enviar fichero a servidor https con SOAP felixgo Internet 3 14-02-2005 20:35:42
Enviar un attachment DIME con SOAP jcrodriguez Internet 0 16-09-2004 08:57:54
Obtener Todo El Registro De Una Tabla Aunque Aunque Este Agrupado Por 2 Campos agova SQL 6 11-08-2004 15:48:14


La franja horaria es GMT +2. Ahora son las 20:07:16.


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