Brug af Curl i Java

1. Oversigt

I denne vejledning skal vi se på, hvordan du bruger krølle værktøj inde i et Java-program.

Krølle er et netværksværktøj, der bruges til at overføre data mellem en server og krølle klient ved hjælp af protokoller som HTTP, FTP, TELNET og SCP.

2. Grundlæggende brug af krøller

Vi kan udføre krølle kommandoer fra Java ved hjælp af ProcessBuilder - en hjælperklasse til bygningsinstanser af Behandle klasse.

Lad os se et eksempel på at sende kommandoer direkte til operativsystemet:

Strengkommando = "curl -X GET //postman-echo.com/get?foo1=bar1&foo2=bar2"; ProcessBuilder processBuilder = ny ProcessBuilder (command.split ("")); 

Først opretter vi kommando variabel, før den sendes til ProcessBuilder konstruktør.

Det er værd at bemærke her, at hvis krølle eksekverbar er ikke på vores systemsti, vi bliver nødt til at angive sin fulde sti i vores kommandostreng.

Vi kan derefter indstille arbejdsmappen til ProcessBuilder og start processen:

processBuilder.directory (ny fil ("/ home /")); Process proces = processBuilder.start (); 

Herfra kan vi få InputStream ved at få adgang til det fra Behandle eksempel:

InputStream inputStream = process.getInputStream (); 

Når behandlingen er afsluttet, kan vi få udgangskoden med:

int exitCode = process.exitValue (); 

Hvis vi har brug for at køre yderligere kommandoer, kan vi genbruge ProcessBuilder eksempel ved at videregive nye kommandoer og argumenter i en Snor matrix:

processBuilder.command (ny streng [] {"curl", "-X", "GET", "//postman-echo.com?foo=bar"}); 

Endelig at afslutte hver Behandle for eksempel skal vi bruge:

process.destroy (); 

3. Et simpelt alternativ til ProcessBuilder

Som et alternativ til at bruge ProcessBuilder klasse, kan vi bruge Runtime.getRuntime () for at få en forekomst af Behandle klasse.

Lad os se en anden prøve krølle kommando - denne gang ved hjælp af en STOLPE anmodning:

krølle -X POST //postman-echo.com/post --data foo1 = bar1 & foo2 = bar2

Lad os nu udføre kommandoen ved hjælp af Runtime.getRuntime () metode:

Strengkommando = "krølle -X POST //postman-echo.com/post --data foo1 = bar1 & foo2 = bar2"; Process proces = Runtime.getRuntime (). Exec (kommando); 

For det første opretter vi en forekomst af Behandle klasse igen, men denne gang ved hjælp af Runtime.getRuntime (). Vi kan få en InputStream som i vores tidligere eksempel ved at kalde getInputStream () metode:

process.getInputStream ();

Når forekomsten ikke længere er nødvendig, skal vi frigive systemressourcer ved at ringe til ødelægge() metode.

4. Konklusion

I denne artikel har vi vist to måder at bruge krølle i Java.

Dette og flere kodeeksempler er tilgængelige på GitHub.