miércoles, 22 de septiembre de 2010

ENVIAR PETICION POST JAVA


El siguiente código sirve para enviar una petición POST con protocolo 'http' contra una URL, añadiendo a la petición el usuario y contraseña que nos solicitará el servidor, y un XML en forma de cadena:

private static String conexionPOST(String request, String datos,
            String protocolo) {

        String response = "";

        OutputStreamWriter wr = null;

        BufferedReader rd = null;

        try {

            URL url = new URL(request);

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();

            // Escribir los parametros en el mensaje
            conn.setDoOutput(true);
            conn.setAllowUserInteraction(true);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "text/xml");
            conn.setDefaultUseCaches(false);

            String auth = username + ":" + password;

            conn.setRequestProperty("Authorization", "Basic "
                    + Base64.encodeBytes(auth.getBytes()));

            wr = new OutputStreamWriter(conn.getOutputStream());

            wr.write(datos);

            wr.flush();

            // Recibir respuesta

            conn.connect();

            rd = new BufferedReader(
                    new InputStreamReader(conn.getInputStream()));

            String line;

            while ((line = rd.readLine()) != null) {

                // Process line...
                response += line;

            }

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            try {

                if (wr != null) {
                    wr.close();
                }

                if (rd != null) {
                    rd.close();
                }

            } catch (IOException ex) {

                System.out
                        .println("Exception al cerrar el lector o el escritor");

            }
        }

        return response;
    }

No hay comentarios:

Publicar un comentario