¿Cómo uso curl en Java para hacer una llamada a una url?

Creo que la pregunta necesita ser elaborada. Por lo que he entendido, desea llamar a una url por su declaración curl. Lo demostraré con un ejemplo. Supongamos que este es su comando curl:

  curl -i -u invitado: invitado -H "tipo de contenido: aplicación / json"
 -XPUT \ http: // localhost: 15672 / api / traces /% 2f / my-trace \
 -d '{"formato": "texto", "patrón": "#"}' 
  • Para el comando anterior, el programa completo de Java es:

Primero se toma una URL, se crea un objeto URL, se establecen las propiedades de conexión y los datos se dividen en pequeñas unidades (tokens) y luego se introducen en una secuencia.

  import java.io.BufferedReader;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.net.Proxy;
 import java.net.InetSocketAddress;
 import java.io.OutputStreamWriter;

 Curl de clase pública {

   public static void main (String [] args) {

     tratar {

     String url = "http://127.0.0.1:15672/api/traces/%2f/trololo";

     URL obj = nueva URL (url);
     HttpURLConnection conn = (HttpURLConnection) obj.openConnection ();

     conn.setRequestProperty ("Tipo de contenido", "aplicación / json");
     conn.setDoOutput (verdadero);

     conn.setRequestMethod ("PUT");

     String userpass = "user" + ":" + "pass";
     String basicAuth = "Básico" + javax.xml.bind.DatatypeConverter.printBase64Binary (userpass.getBytes ("UTF-8"));
     conn.setRequestProperty ("Autorización", basicAuth);

     Datos de cadena = "{\" format \ ": \" json \ ", \" pattern \ ": \" # \ "}";
     OutputStreamWriter out = new OutputStreamWriter (conn.getOutputStream ());
     out.write (datos);
     out.close ();

     nuevo InputStreamReader (conn.getInputStream ());   

     } catch (Excepción e) {
     e.printStackTrace ();
     }

   }

 }

Fuente: convertir curl call en java urlconnection call

Si hay algún problema, ¡házmelo saber! ¡Espero que esto ayude!

Saludos,

Duro Tyagi

La clase HttpURLConnection puede llevarte allí lo que quieras.

Ver este ejemplo:

HttpURLConnection con = (HttpURLConnection) new URL("https://www.example.com").openConnection(); con.setRequestMethod("POST"); con.getOutputStream().write("LOGIN".getBytes("UTF-8")); con.getInputStream(); 

Bueno, como se mencionó si solo desea datos del sitio web, HttpURLConnection es más útil, pero si desea usar curl call para lo mismo, puede usar Runtime : es decir, Runtime.getRuntime (). exec (“comando”);

  tratar { 		
 Proceso p = Runtime.getRuntime (). Exec (comando); 			
 p.waitFor (); 
 BufferedReader reader = new BufferedReader (nuevo InputStreamReader (p.getInputStream ()));
 Línea de cadena = "";
 while ((line = reader.readLine ())! = null) 
 {
 output.append (línea + "\ n"); 
 }

Puede usar getInputStream () y getErrorStream () para manejar casos de esquina también. Podemos ejecutar cualquier comando aquí (incluido el comando curl )

Espero que haya ayudado.

  HttpURLConnection conn = (HttpURLConnection) (nueva URL ("https://www.quora.com")). OpenConnection ();
 
 conn.setRequestProperty ("Tipo de contenido", "aplicación / json");
 conn.setDoOutput (verdadero);
 conn.setDoInput (verdadero);

 conn.setRequestMethod ("PUT");
 Datos JSONObject = new JSONObject ();
 // Ahora agregue todos los datos a este objeto usando acumular.

 OutputStreamWriter out = new OutputStreamWriter (conn.getOutputStream ());
 out.write (datos);

 Bufferedreader reader = new BufferedReader (nuevo InputStreamReader (conn.getInputStream ());
 for (String line; (line = reader.readLine ())! = null;) {
         System.out.println (línea);
 }
 lector.close ();
 out.close ();

No olvides agregar todo el bloque en try and Catch.

Puede utilizar java.net.URL y / o java.net.URLConnection .

  URL url = nueva URL ("http://quora.com");

 try (BufferedReader reader = new BufferedReader (new InputStreamReader (url.openStream (), "UTF-8"))) {
     for (String line; (line = reader.readLine ())! = null;) {
         System.out.println (línea);
     }
 }

Consulte este enlace para obtener la respuesta a la pregunta anterior:

Usando cURL para interactuar con los servicios de Google Data

More Interesting

He estado aprendiendo desarrollo web porque quiero hacer trabajo independiente. ¿Cómo sé cuándo estoy listo?

Estoy tratando de construir una página web y he llegado a la parte de elegir un servidor web. Estoy abrumado ahora. ¿Cómo elijo un proveedor de alojamiento web? No lo entiendo

Quiero convertirme en desarrollador front y backend. No sé por dónde empezar, pero quiero hacerlo. ¿Cómo es posible esto?

Sé HTML5, CSS3, JavaScript, jQuery lo suficiente como para hacer un trabajo. Sin embargo, no me considero un experto en estas áreas. ¿Cómo puedo mejorar?

Necesito diseñar una aplicación web de gestión del tiempo, ¿es mejor codificar el módulo de calendario desde cero o existen soluciones existentes que pueda usar con JavaScript?

Soy un desarrollador front-end en una pequeña empresa de TI, pero mis habilidades son constantes allí. ¿Qué puedo hacer cuando voy a una entrevista y me rechazan?

¿Cuál es el lenguaje básico para aprender para un desarrollador front-end?

Como desarrollador de PHP, ¿qué certificación de AWS debo elegir?

Me gustaría crear un servicio web usando Java que tenga usuarios y publicaciones. ¿Qué marco es mejor, Play o Grails?

Cómo ser el mejor en todos los módulos de JAVA

Cómo elegir el mejor complemento SEO de WordPress para mi sitio web

Cómo lanzar un sitio web con éxito

Acabo de crear mi blog sobre fotografía y pensamientos, y estoy buscando un alojamiento de WordPress compatible con fotos más grandes. ¿Donde puedo encontrarlos?

Quiero aprender cualquier lenguaje de script del lado del servidor. ¿Debo usar PHP o Spring MVC? Si estoy aprendiendo Spring, ¿es bueno si obtengo una certificación? ¿Cuál va a tener más demanda en el futuro?

Soy bastante nuevo en las aplicaciones MVC, ¿alguien puede sugerirme cómo aprender a desarrollar aplicaciones MVC y qué idioma elegir para desarrollar aplicaciones?