Espacio de tecnologia, software libre y sus derivados. Una horda de monos entrenados escriben de vez en cuando por aqui algunas noticias, opiniones e incluso alguna que otra cosa fuera del tema. Maqueros, favor de abstenerse que no somos lo suficientemente guapos.

Piano daemon

Recibiendo XML mediante un Metodo POST

En algunas App sobre servidores de aplicacion suele existir la necesidad de una API XML, es decir una Interfaz XML que reciba y realice las acciones necesarias en la App que corre sobre el servidor. Esta API debera ser capaz de recibir peticiones XML por protocolo http en algún puerto, las peticiones seran por método POST. El servidor deberá realizar todas las acciones pertinentes y responder de forma SINCRONICA a la petición.

He implementado una interface asi mediante el siguiente jsp:

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@page import="java.io.*"%>
<%@page import="java.util.*"%>
<%@page import="java.net.*"%>
<%@page import="tid.sme.scl.SCL"%>
<%@page import="tid.sms.util.Logger"%>

<%
    // Aqui se lee el flujo de datos recibidos en el POST request
    BufferedReader in = request.getReader();
    String requestLine = in.readLine();

    if (requestLine == null) {
        out.println("No se ha ingresado una Peticion XML");
        Logger.log(Logger.ERROR, "No se ha ingresado una Peticion XML");

    } else {
       // Codigo que hara... algo con el flujo XML recibido
        String cadena_solicitud =  requestLine;

        SCL soul = new SCL();

        soul.AnalizeXmlFromServlet( soul.Convert2Xml(cadena_solicitud) );

        String cadena_retorno = soul.Response2Petit();

        // Lo que nos respondera nuestro servidor en base
        // al XML que le hemos mandado
        out.println( cadena_retorno );

    }
%>

Asi le he mandado el flujo XML de peticion a mi jsp ( tambien esto podria hacerce en un servlet.. )

curl -d @/home/envio/xmlprueba.xml http://rome/envioSMS/scl.jsp

Curl es algo asi como un navegador en linea de comandos… pero sin ser un navegador :p

Comenta