sábado, octubre 24, 2015

Verificar servicios web de SRI si estan o no en Linea


Con esta funcion en Java es posible revisar si los servicios web del SRI estan activos o no:
Es posible que a futuro se modifique las URL de los servicios web, en ese caso se tendria que actualizar.


package com.sri.;

import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.bind.DatatypeConverter;

public class RevisarSwSri
{

    public RevisarSwSri()
        {
       }

    public static void main(String[] args)
    {
        String url0 = "https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl";
        String url1 = "https://celcer.sri.gob.ec/comprobantes-electronicos-ws/AutorizacionComprobantes?wsdl";       
        String url2 = "https://cel.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl";
        String url3 = "https://cel.sri.gob.ec/comprobantes-electronicos-ws/AutorizacionComprobantes?wsdl";

        try {
               
            VerificarUrl(url0, 0);
            VerificarUrl(url1, 1);
            VerificarUrl(url2, 0);           
            VerificarUrl(url3, 1);
            }
          catch (Exception ex)
          {
             
          }       
    }
   
    public static boolean VerificarUrl(String url, int recEnv)
        {
        String claveAcceso            = "";
        String cadenaBytes            = "";
        String xmlEnviar            = "";
        String xmlRecibir            = "";
        String xml                    = "";
        boolean retorno                = false;
       
        try {   
                cadenaBytes = DatatypeConverter.printBase64Binary(cadenaBytes.getBytes("UTF-8"));
                xmlEnviar     = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:ec='http://ec.gob.sri.ws.recepcion'>"+
                    "<soapenv:Header/>"+
                    "<soapenv:Body>"+
                    "<ec:validarComprobante>"+
                    "<xml>"+ cadenaBytes +"</xml>"+
                    "</ec:validarComprobante>"+
                    "</soapenv:Body>"+
                    "</soapenv:Envelope>";
           
                xmlRecibir = "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' xmlns:ec='http://ec.gob.sri.ws.autorizacion'>"+
                    "<soapenv:Header/>"+
                    "<soapenv:Body>"+
                    "<ec:autorizacionComprobante>"+
                    "<claveAccesoComprobante>"+ claveAcceso+"</claveAccesoComprobante>"+
                    "</ec:autorizacionComprobante>"+
                    "</soapenv:Body>"+
                    "</soapenv:Envelope>";      
                if(recEnv <= 0)
                    xml = xmlEnviar;
                else
                    xml = xmlRecibir;                   
                if(RevisarEstadoSw(url, xml))
                    {
                        System.out.println("EN LINEA URL-->" + url);
                        retorno = true;
                    }
                else
                    {
                        System.out.println("FUERA DE LINEA URL-->" + url);
                        retorno = false;
                    }
            }
        catch (Exception ex)
            {
                retorno = false;
            }       
        return retorno;
    }
   
   
    public static boolean RevisarEstadoSw(String url, String xml)
    {
        URL oURL;
        boolean retorno;
        try {
                oURL = new URL(url);
                HttpURLConnection con        = null;
           
                con = (HttpURLConnection) oURL.openConnection();
       
                con.setDoOutput(true);                 
                con.setRequestMethod("POST");
                con.setRequestProperty("Content-type", "text/xml; charset=utf-8");
                con.setRequestProperty("SOAPAction", "");
                con.setRequestProperty("Host", "celcer.sri.gob.ec");      

                OutputStream reqStreamOut = con.getOutputStream();
                reqStreamOut.write(xml.getBytes());
                System.out.println("Codito HTTP--> " + String.valueOf(con.getResponseCode()) + " Mensaje--> " +con.getResponseMessage());
                if(con.getResponseCode() > 200)
                    return false;
                return true;
            }
        catch (MalformedURLException e)
            {
                retorno = false;
            }
        catch (Exception ex)
            {
                retorno = false;           
            }       
        return retorno;
    }
}


1 comentario:

Unknown dijo...

Estimado Buenas Tardes ,
Esta viendo en aporte y me pregunte si usted tiene conocimientos de como recibir los mensajes que envia los Web de SRI ayudeme en eso estimado..