Bruke Curl i Java

1. Oversikt

I denne opplæringen skal vi se på hvordan du bruker krølle verktøyet i et Java-program.

Krølle er et nettverksverktøy som brukes til å overføre data mellom en server og krølle klient ved hjelp av protokoller som HTTP, FTP, TELNET og SCP.

2. Grunnleggende bruk av krøll

Vi kan henrette krølle kommandoer fra Java ved hjelp av ProcessBuilder - en hjelperklasse for å bygge forekomster av Prosess klasse.

La oss se et eksempel på å 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 lager vi kommando variabel før du sender den til ProcessBuilder konstruktør.

Det er verdt å merke seg her at hvis krølle kjørbar er ikke på systemstien vår, vi må oppgi den fullstendige banen i kommandostrengen.

Vi kan deretter sette arbeidskatalogen for ProcessBuilder og start prosessen:

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

Herfra kan vi få InputStream ved å få tilgang til den fra Prosess forekomst:

InputStream inputStream = process.getInputStream (); 

Når behandlingen er fullført, kan vi få utgangskoden med:

int exitCode = process.exitValue (); 

Hvis vi trenger å kjøre flere kommandoer, kan vi gjenbruke ProcessBuilder eksempel ved å sende nye kommandoer og argumenter i a String matrise:

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

Til slutt, for å avslutte hver Prosess For eksempel bør vi bruke:

prosess. ødelegge (); 

3. Et enkelt alternativ til ProcessBuilder

Som et alternativ til å bruke ProcessBuilder klasse, kan vi bruke Runtime.getRuntime () for å få en forekomst av Prosess klasse.

La oss se et annet utvalg krølle kommando - denne gangen ved hjelp av en POST be om:

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

La oss nå utføre kommandoen ved å bruke Runtime.getRuntime () metode:

Strengkommando = "curl -X POST //postman-echo.com/post --data foo1 = bar1 & foo2 = bar2"; Prosessprosess = Runtime.getRuntime (). Exec (kommando); 

For det første lager vi en forekomst av Prosess klasse igjen, men denne gangen ved hjelp av Runtime.getRuntime (). Vi kan få en InputStream som i vårt forrige eksempel ved å kalle getInputStream () metode:

process.getInputStream ();

Når forekomsten ikke lenger er nødvendig, bør vi frigjøre systemressurser ved å ringe ødelegge() metode.

4. Konklusjon

I denne artikkelen har vi vist to måter å bruke krølle i Java.

Dette og flere kodeeksempler er tilgjengelig på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found