Používanie Curl v Jave
1. Prehľad
V tomto výučbe sa pozrieme na to, ako používať zvlnenie nástroj vo vnútri programu Java.
Curl je sieťový nástroj používaný na prenos údajov medzi serverom a serverom zvlnenie zákazník pomocou protokolov ako HTTP, FTP, TELNET a SCP.
2. Základné použitie zvlnenia
Môžeme vykonať zvlnenie príkazy z Javy pomocou ProcessBuilder - pomocná trieda pre vytváranie inštancií Proces trieda.
Pozrime sa na príklad odosielania príkazov priamo do operačného systému:
String command = "curl -X ZÍSKAŤ //postman-echo.com/get?foo1=bar1&foo2=bar2"; ProcessBuilder processBuilder = nový ProcessBuilder (command.split (""));
Najskôr vytvoríme príkaz premenná pred jej odovzdaním ProcessBuilder konštruktér.
Tu stojí za zmienku, že ak zvlnenie spustiteľný súbor nie je na našej systémovej ceste, budeme musieť uviesť celú cestu v našom príkazovom reťazci.
Potom môžeme nastaviť pracovný adresár pre ProcessBuilder a spustite proces:
processBuilder.directory (nový súbor ("/ home /")); Proces proces = processBuilder.start ();
Od tejto chvíle môžeme získať InputStream prístupom z Proces inštancia:
InputStream inputStream = process.getInputStream ();
Po dokončení spracovania môžeme výstupný kód získať pomocou:
int exitCode = process.exitValue ();
Ak potrebujeme spustiť ďalšie príkazy, môžeme znova použiť ProcessBuilder napríklad odovzdaním nových príkazov a argumentov v a String pole:
processBuilder.command (nový reťazec [] {"curl", "-X", "GET", "//postman-echo.com?foo=bar"});
Nakoniec každú ukončiť Proces mali by sme použiť napríklad:
process.destroy ();
3. Jednoduchá alternatíva k ProcessBuilder
Ako alternatívu k použitiu ProcessBuilder triedy, môžeme použiť Runtime.getRuntime () získať inštanciu Proces trieda.
Uvidíme ďalšiu ukážku zvlnenie príkaz - tentokrát pomocou a POST požiadavka:
curl -X POST //postman-echo.com/post --data foo1 = bar1 & foo2 = bar2
Teraz vykonajme príkaz pomocou Runtime.getRuntime () metóda:
Reťazcový príkaz = "curl -X POST //postman-echo.com/post --data foo1 = bar1 & foo2 = bar2"; Proces proces = Runtime.getRuntime (). Exec (príkaz);
Najskôr vytvoríme inštanciu súboru Proces triedy opäť, ale tentokrát s využitím Runtime.getRuntime (). Môžeme dostať InputStream ako v našom predchádzajúcom príklade volaním getInputStream () metóda:
process.getInputStream ();
Ak inštancia už nie je potrebná, mali by sme uvoľniť systémové prostriedky zavolaním na zničiť () metóda.
4. Záver
V tomto článku sme si ukázali dva spôsoby použitia zvlnenie v Jave.
Tento a ďalšie príklady kódu sú k dispozícii na stránkach GitHub.