Ver Mensaje Individual
  #779  
Antiguo 08-06-2021
skymota skymota is offline
Registrado
 
Registrado: mar 2011
Posts: 6
Reputación: 0
skymota Va por buen camino
Buenas, tengo los xml firmados y su generación integrada en el software, asi que me he puesto con el envío, pero primer problema, el hacer la petición post con el certificado...
Utilizo Delphi y con el TIdHTTP como utilizo con todas las conexiones externas del software, lo que consigo aunque le meta el componente SSLIOHandler con el certificado, es que cuando me hace la petición POST, se me abre la ventana de los certificados de windows, no me coge el certificado que le estoy incluyendo.

¿Alguien ha tenido este problema? Sabeis como forzar para que pille el certificado del IOHandler?

Gracias!!



Cita:
Empezado por jaiser Ver Mensaje
No se porque me da el error 503. Estoy progrmamando en vb.net, no se si alguien me puede ayudar a ver donde está el error, lo he pasado a c el código.

Código:
public void envio(System.Xml.XmlDocument xml, System.Security.Cryptography.X509Certificates.X509Certificate2 certificado)
{
    byte[] sentXml = System.Text.Encoding.UTF8.GetBytes(xml.OuterXml);
    Stream stream;

    request.Method = "POST";
    request.ContentType = "application/xml; charset=utf-8";
    request.ContentType = "text/xml; charset=utf-8";
    request.Timeout = 3000000;
    request.ClientCertificates.Add(certificado);
    // soap action (this is the header I tried to add. Didn't work.)
    request.Headers.Add("SOAPAction", "h t t p s://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta");

    // Set the ContentLength property of the WebRequest.
    request.ContentLength = sentXml.Length;

    stream = request.GetRequestStream();

    try
    {
        stream.Write(sentXml, 0, sentXml.Length);
    }
    catch (Exception ex)
    {
        Interaction.MsgBox("Error Sending Data: " + ex.Message);
    }

    // Close the Stream object.
    stream.Close();

    try
    {
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Console.WriteLine("Received response with status {0} {1}.", response.StatusCode, response.StatusDescription);

        if (response.StatusCode == HttpStatusCode.OK)
        {
            XmlDocument responseXML = new XmlDocument();
            Stream a = response.GetResponseStream;
            StreamReader reader = new StreamReader(a);
            Interaction.MsgBox(reader.ReadToEnd());

            responseXML.Load(response.GetResponseStream());
            responseXML.Save("respuesta.xml");
            responseXML.Save(Console.Out);
        }

        response.Close();
    }
    catch (Exception ex)
    {
        Interaction.MsgBox("Error Getting Response: " + ex.Message);
    }
}
Responder Con Cita