Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-12-2021
Muriel Muriel is offline
Miembro
 
Registrado: ago 2008
Posts: 19
Poder: 0
Muriel Va por buen camino
consumir web service SOAP con TOKEN en delphi

Hola amigos del foro,
Acudo a ustedes por la inexperiencia que tengo en consumir servicios web y peor todavía con un token que no se envía como parámetro, espero que ayuden , de ante mano les agradezca mucho.
Esto es el ejemplo que pone el proveedor en NETCORE y PHP y algo de recomendación que les deja abajo.


Para realizar el consumo de los servicios que solicitan la autenticación mediante el uso de token, se debe considerar en el header del servicio el parámetro: Authorization y el valor: “Token VALORTOKEN”. Donde la variable “VALORTOKEN” es el Token que se obtuvo a través del servicio de autenticación.

Nota.- La inclusión del Token de la petición SOAP debe hacerse en la cabecera HTTP y no así en la cabecera XML del request

Para efectos ilustrativos, se ejemplifica en los siguientes lenguajes:

Código en PHP:

<?php

/** Ejemplo de manejo de SOAP con libreria de PHP php-soap */

$wsdl = "https://pilotosiatservicios.impuestos.gob.bo/v1/FacturacionCodigos?wsdl";

$token = 'VALOR_TOKEN';

$opts = array(
'http' => array(
'header' => "Authorization: Token $token",
)
);

$context = stream_context_create($opts);

$client = new \SoapClient($wsdl, [
'stream_context' => $context,
'cache_wsdl' => WSDL_CACHE_NONE,
'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP | SOAP_COMPRESSION_DEFLATE,

// other options
]);

$respons = $client->verificarComunicacion();
?>

Código en .NETCORE:

using System;
using System.ServiceModel;
using ServiceReference;
using System.Xml;
using System.Threading.Tasks;
using System.ServiceModel.Description;
using System.ServiceModel.Dispatcher;
using System.ServiceModel.Channels;

namespace client
{
class Program
{
private static string endpointAddress = "https://pilotosiatservicios.impuestos.gob.bo/v1/FacturacionCodigos?wsdl";
static void Main(string[] args)
{
string token = "TOKEN";

BasicHttpBinding binding = new BasicHttpBinding
{
SendTimeout = TimeSpan.FromSeconds(1000),
MaxBufferSize = int.MaxValue,
MaxReceivedMessageSize = int.MaxValue,
AllowCookies = true,
ReaderQuotas = XmlDictionaryReaderQuotas.Max
};
binding.Security.Mode = BasicHttpSecurityMode.Transport; // https
//binding.Security.Mode = BasicHttpSecurityMode.None; // http
EndpointAddress address = new EndpointAddress(endpointAddress);
ServicioFacturacionCodigosClient servicio = new ServicioFacturacionCodigosClient(binding, address);
servicio.Endpoint.EndpointBehaviors.Add(new CustomAuthenticationBehaviour($"Token {token}"));
try {
Task<verificarComunicacionResponse> resp = servicio.verificarComunicacionAsync();
resp.Wait();
Console.WriteLine(resp.Result.@return);
} catch (Exception e) {
Console.WriteLine($"{e.Message}");
}
}
}

public class CustomMessageInspector : IClientMessageInspector
{
readonly string _authToken;

public CustomMessageInspector(string authToken)
{
_authToken = authToken;
}

public object BeforeSendRequest(ref Message request, IClientChannel channel)
{
var reqMsgProperty = new HttpRequestMessageProperty();
reqMsgProperty.Headers.Add("Authorization", _authToken);
request.Properties[HttpRequestMessageProperty.Name] = reqMsgProperty;
return null;
}

public void AfterReceiveReply(ref Message reply, object correlationState)
{ }
}
}
Responder Con Cita
 



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 puedo consumir un soap en java uper JAVA 1 07-08-2019 17:36:12
Como consumir Rest Service que retorna cadena en formato JSON desde delphi 7 JuanPa1 Internet 0 20-12-2013 18:07:20
Web Service SOAP con Delphi 5 socger Internet 7 26-07-2012 22:25:51
Consumir un Web Service lbidi Varios 4 17-04-2012 14:28:37
Consumir WebService. Ayuda con XML,WSDL,XSD,SOAP josemmerida Internet 2 23-12-2010 13:37:16


La franja horaria es GMT +2. Ahora son las 11:42:25.


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