#java #https
Какие существуют способы для отправки https-запросов из десктопного java-приложения? Особенно интересен пример исходного кода.
Ответы
Ответ 1
Самый примитивный способ — это использовать URLConnection. Вот пример без обработки ошибок, кодировок и прочей шелухи: public static void main(String[] args) throws Exception { URLConnection connection = new URL("https://www.dev.java.net/servlets/ProjectList").openConnection(); InputStream is = connection.getInputStream(); InputStreamReader reader = new InputStreamReader(is); char[] buffer = new char[256]; int rc; StringBuilder sb = new StringBuilder(); while ((rc = reader.read(buffer)) != -1) sb.append(buffer, 0, rc); reader.close(); System.out.println(sb); } В случае, если окажется, что стандартный URLConnection (точнее, по факту создаётся HttpsUrlConnection) чего-то не может, то используйте Apache HTTP Client.Ответ 2
import java.net.*; import java.io.*; public class URLReader { public static void main(String[] args) throws Exception { URL oracle = new URL("http://www.oracle.com/"); BufferedReader in = new BufferedReader( new InputStreamReader(oracle.openStream())); String inputLine; StringBuilder sb = new StringBuilder(); while ((inputLine = in.readLine()) != null) sb.append(inputLine); in.close(); System.out.println(sb); } } Источник https://docs.oracle.com/javase/tutorial/networking/urls/readingURL.htmlОтвет 3
Можно использовать http-request построенный на apache http api. String uri = "https://www.dev.java.net/servlets/ProjectList"; HttpRequesthttpRequest = HttpRequestBuilder.createGet(uri, String.class) .responseDeserializer(ResponseDeserializer.ignorableDeserializer()).build(); public void send(){ ResponseHandler response = httpRequest.execute(someParamsYouWant); System.out.println(response.getStatusCode()); System.out.println(response.get()); //retuns response body }
Комментариев нет:
Отправить комментарий