Curl mediante http

Hola a todos en la comunidad...

Estoy investigando sobre como realizar un cliente donde pueda enviar comandos mediante la herramienta curl en el protocolo http.

algo como esto:

curl -d "codigo xml | html etc.. " http://direccion-web/

La idea es generar un cliente con Java que envié comandos de forma masiva al servidor mediante http.

Sera de mucha ayuda las ideas que me puedan ofrecer y herramientas, JARS o si alguien implemento algo semejante, para obtener información
para armar el codigo...

Mientras seguiré investigando, muchas gracias por su apoyo...

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

jdk

Todo lo que necesitas está en el jdk, no necesitas nada adicional.

Con las clases URL, HttpURLConnection, Executors, y un Runnable que armes para correr muchas instancias en paralelo ya la armaste.

Imagen de linux-genesis

Esto es lo que llevo por el momento...

Al final encontre que existe unas libreria de apache-jakarta-commons que facilitan el trabajo para enviar post desde Http

Agregue los siguientes Jar´s en Build Path de Eclipse:
==========================================

apache-jakarta-commons-httpclient.jar
apache-jakarta-commons-logging-api.jar
apache-jakarta-commons-codec.jar

==========================================

El siguiente codigo ya me obtiene la respuesta como quería, no es necesario utilizar el curl como tenia pensado:
curl -d "codigo xml | html etc.. " http://direccion-web/

Al revisar la documentación oficial de curl, indica que -d ó --data envia POST.

Ahora solamente me hace falta validar la respuesta, para ello estoy pensando leer el XML que me devuelve para acceder a un atributo llamado

result

¿Que es lo mas apropiado para leer el XML de forma eficiente en el Java?

Por cierto llevo relativamente muy poco con el Java...

Gracias por la respuesta ezamudio

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PostMethod;

public class PostXML {
       
        public static void main(String[] args) throws FileNotFoundException{
               
                // Get target URL
                String strURL = "Url_de_Conexion";
               
                // Get file to be posted
                String strXMLFilename = "C:\\comandoXML.txt";
                File input = new File(strXMLFilename);
               
                // Prepare HTTP Post
                PostMethod post = new PostMethod(strURL);

                        post.setRequestEntity(new InputStreamRequestEntity(new FileInputStream(input), input.length()));
                       
                        // Specify content type and encoding
                // If content encoding is not explicitly specified
                // ISO-8859-1 is assumed
                        post.setRequestHeader("Content-type", "text/xml; charset=ISO-8859-1");
                       
                        // Get HTTP client
                        HttpClient httpclient = new HttpClient();
                       
                        // Execute Request
                        try {
                                int result = httpclient.executeMethod(post);
                               
                                // Display status code
                                System.out.println("Response status code: "+ result);
                               
                                // Display response
                                System.out.println("Response body: ");
                                System.out.println("======================================");
                                System.out.println(post.getResponseBodyAsString());
                               
                        } catch (HttpException e) {
                                e.printStackTrace();
                        } catch (IOException e){
                                e.printStackTrace();
                        } finally {
                                post.releaseConnection();
                        }                      
                       
        }
}

Saludos...

Imagen de ezamudio

stress?

ora que si lo que querías eran pruebas de stress o algo así pues está selenium, o gatling...