Jestem nowicjuszem w Javie i chciałem używać curl w Javie. Moje pytanie brzmi: curl jest wbudowany w Javę lub muszę go zainstalować z dowolnego źródła zewnętrznego, aby używać go z Javą. Jeśli tak, jak zainstalować curl w java. Szukam w Google przez długi czas, ale nie znalazłem żadnej pomocy. Mam nadzieję, że ktoś może mi tam pomóc.
Z góry dziękuję.
Odpowiedzi:
Możesz skorzystać z
java.net.URL
i / lubjava.net.URLConnection
.URL url = new URL("https://stackoverflow.com"); try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) { for (String line; (line = reader.readLine()) != null;) { System.out.println(line); } }
Zobacz także prosty samouczek Oracle na ten temat. Jest to jednak trochę rozwlekłe. Aby uzyskać mniej rozwlekły kod, możesz zamiast tego rozważyć Apache HttpClient .
Przy okazji: jeśli następne pytanie brzmi „Jak przetworzyć wynik HTML?”, Odpowiedź brzmi: „ Użyj parsera HTML . Nie, nie używaj do tego wyrażenia regularnego ”.
Zobacz też:
źródło
URLConnection
, ale musisz znać i rozumieć specyfikacje HTTP. Nawiasem mówiąc, nie próbuj porównywać PHP z Javą. To jest jak jabłka i pomarańcze. Aby uniknąć kłopotów / nieporozumień, raczej zapomnij o PHP i odświeżyć spojrzenie na Javę. To język o zupełnie innej ideologii. PS: Robię jedno i drugie, więc mówię z doświadczenia.Niektórzy wspominali już o HttpURLConnection , URL i URLConnection . Jeśli potrzebujesz całej kontroli i dodatkowych funkcji, które zapewnia biblioteka curl (i nie tylko), polecam httpclient Apache .
źródło
Obiekt Runtime umożliwia uruchamianie zewnętrznych aplikacji wiersza poleceń z poziomu języka Java i dlatego umożliwia korzystanie z cURL, ponieważ inne odpowiedzi wskazują, że prawdopodobnie jest lepszy sposób na zrobienie tego, co próbujesz zrobić. Jeśli wszystko, co chcesz zrobić, to pobrać plik, obiekt URL będzie działał świetnie.
źródło
Korzystając ze standardowych bibliotek java, sugeruję przyjrzenie się klasie HttpUrlConnection http://java.sun.com/javase/6/docs/api/java/net/HttpURLConnection.html
Potrafi obsłużyć większość tego, co curl może zrobić podczas konfigurowania połączenia. To, co zrobisz ze strumieniem, zależy od Ciebie.
źródło
Curl nie jest programem Java i należy go udostępnić poza programem Java.
Możesz łatwo uzyskać większość funkcji za pomocą Jakarta Commons Net , chyba że istnieje jakaś konkretna funkcjonalność, taka jak „wznowienie transferu”, której potrzebujesz (która jest żmudna przy samodzielnym kodowaniu)
źródło
Użyj Runtime, aby zadzwonić do Curla. Ten kod działa zarówno w systemie Ubuntu, jak i Windows.
String[] commands = new String {"curl", "-X", "GET", "http://checkip.amazonaws.com"}; Process process = Runtime.getRuntime().exec(commands); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; String response; while ((line = reader.readLine()) != null) { response.append(line); }
źródło