Curl használata Java-ban

1. Áttekintés

Ebben az oktatóanyagban megvizsgáljuk a becsavar eszköz egy Java programon belül.

Becsavar egy hálózati eszköz, amellyel adatokat lehet továbbítani a szerver és a becsavar ügyfél protokollok, például HTTP, FTP, TELNET és SCP használatával.

2. A Curl alapvető használata

Kivégezhetjük becsavar parancsokat a Java-ból a ProcessBuilder - segítő osztály a Folyamat osztály.

Lássunk egy példát a parancsok közvetlen küldésére az operációs rendszerre:

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

Először létrehozzuk a parancs változó, mielőtt átadná a ProcessBuilder konstruktőr.

Itt érdemes megjegyezni, hogy ha a becsavar A végrehajtható fájl nem található meg a rendszerünk elérési útján, a teljes elérési utat a parancssorban kell megadnunk.

Ezután beállíthatjuk a ProcessBuilder és indítsa el a folyamatot:

processBuilder.directory (új Fájl ("/ home /")); Process process = processBuilder.start (); 

Innentől kezdve megszerezhetjük a InputStream elérésével a Folyamat példa:

InputStream inputStream = process.getInputStream (); 

Amikor a feldolgozás befejeződött, a következő kódokkal kaphatjuk meg a kilépési kódot:

int exitCode = process.exitValue (); 

Ha további parancsokat kell futtatnunk, akkor újra felhasználhatjuk a ProcessBuilder például új parancsok és argumentumok átadásával a Húr sor:

processBuilder.command (új karakterlánc [] {"curl", "-X", "GET", "//postman-echo.com?foo=bar"}); 

Végül mindegyik megszüntetése Folyamat Például a következőket kell használnunk:

process.destroy (); 

3. Egyszerű alternatíva a ProcessBuilder

A ProcessBuilder osztály, használhatjuk Runtime.getRuntime () hogy a Folyamat osztály.

Lássunk egy másik mintát becsavar parancs - ezúttal a POST kérés:

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

Most hajtsuk végre a parancsot a Runtime.getRuntime () módszer:

Karakterlánc parancs = "curl -X POST //postman-echo.com/post --data foo1 = bar1 & foo2 = bar2"; Folyamatfolyamat = Runtime.getRuntime (). Exec (parancs); 

Először létrehozunk egy példányt a Folyamat osztály ismét, de ezúttal használ Runtime.getRuntime (). Kaphatunk egy InputStream mint az előző példánkban a getInputStream () módszer:

process.getInputStream ();

Amikor a példányra már nincs szükség, akkor a elpusztítani() módszer.

4. Következtetés

Ebben a cikkben kétféle felhasználási módot mutattunk be becsavar Java-ban.

Ez és további kódpéldák elérhetők a GitHubon.