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.