¿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

Fui contratado como desarrollador web / de aplicaciones. Quieren que cree maquetas de aspecto muy profesional. Tengo poca o ninguna experiencia con Photoshop (y ellos lo sabían). ¿Qué debo hacer?

Ya trabajo con HTML5 CSS3 JavaScript y jQuery, ¿qué tecnologías como Sass puedo aprender para acelerar mi proceso de desarrollo?

Cómo convertirse en desarrollador web en 12 meses

Marketing web: compré un nombre de dominio de GoDaddy y actualmente estoy creando un sitio web. ¿Puedo ganar a través de este sitio web? ¿Quién me pagará exactamente y de qué manera?

Voy a construir un sitio web por primera vez. ¿Debo hacer HTML, CSS y JS desde cero, o usar un marco como Bootstrap?

¿Qué más necesito aprender para ser un desarrollador web completo?

Quiero aumentar mi conocimiento en conceptos de programación desde que me gradué en electrónica y comunicación (BE). ¿Cómo mejoro mis habilidades y cuál es mi futuro?

Estoy buscando externalizar un complemento de WordPress a un desarrollador, y he encontrado algunos en oDesk. Sin embargo, la mayoría parecen ser agencias o tener un equipo. ¿Es esto problemático para aquellos de ustedes que lo han pasado?

Cómo aprender cómo se diseñó el framework Ruby on Rails

Cómo valorar un servicio que quiero proporcionar en línea

¿Dónde puede encontrar un desarrollador web para ayudar con un proyecto basado en una idea para un sitio web de red social?

He trabajado como diseñador / desarrollador web durante 5 años con poco que mostrar. ¿Cómo construyo una cartera?

Acabo de comenzar un negocio local en Knoxville y deseo crear un sitio web para él. ¿Alguien puede ayudarme?

Sé HTML 5, CSS, conceptos básicos de JavaScript y ASP .NET. ¿Qué más necesito saber para aprender MVC?

¿Puedo hacer una carrera como desarrollador web? Tengo 29 años y tengo un título de PG irrelevante en ciencias. He creado mi propio sitio web en PHP por experiencia, tengo conocimiento del marco MVC y he diseñado plantillas receptivas en Bootstrap.