HOWTO · Java
Java에서 cURL 사용
이 자습서는 cURL에 대해 교육하고 Java의 코드 예제를 통해 cURL 사용법을 보여줍니다.
오늘은 자바에서 cURL에 대해 알아보겠습니다. ProcessBuilder 및 Runtime.getRuntime과 함께 cURL을 사용하는 방법도 배웁니다.
자바의 ‘cURL’
cURL은 cURL 클라이언트와 서버 간에 데이터를 전송하는 네트워킹 도구입니다. cURL은 HTTP, FTP, TELNET 및 SCP와 같은 프로토콜을 사용합니다.
cURL은 핵심 Java의 java.net.URLConnection 패키지 또는 Apache의 ApacheHttpClient와 유사하게 작동합니다. 그러나 cURL은 명령에서 작동하므로 Java에서 ProcessBuilder 또는 Runtime.getRuntime()을 사용해야 할 수도 있습니다.
Java에서 cURL을 사용하는 다양한 방법
먼저 cURL이 시스템에 설치되어 있는지 확인하십시오. 그런 다음 이 링크에서 cURL 설치 프로그램을 다운로드하여 시스템에 설치하십시오.
방법 1: ProcessBuilder와 함께 cURL 사용
cURL이 시스템에 설치되면 Java에서 사용할 수 있습니다. 다음은 Java에서 cURL을 사용하는 방법에 대한 간단한 예입니다.
String Demo_Command = "curl -X GET https://localhost/get?delft1=stack1&delft2=stack2";
ProcessBuilder Process_Builder = new ProcessBuilder(Demo_Command.split(" "));
위의 코드는 주어진 서버 링크에서 get 요청과 함께 cURL 명령을 실행합니다. 또한 cURL에 대한 시스템 경로를 제공해야 합니다. 그렇지 않으면 작동하지 않습니다.
String Demo_Command = "curl -X GET https://localhost/get?delft1=stack1&delft2=stack2";
ProcessBuilder Process_Builder = new ProcessBuilder(Demo_Command.split(" "));
Process_Builder.directory(new File("/home/"));
Process Demo_process = Process_Builder.start();
이제 프로세스에서 입력 스트림을 얻을 수 있으며 처리가 완료된 후 종료 코드를 얻고 프로세스 인스턴스를 삭제할 수 있습니다.
String Demo_Command = "curl -X GET https://localhost/get?delft1=stack1&delft2=stack2";
ProcessBuilder Process_Builder = new ProcessBuilder(Demo_Command.split(" "));
Process_Builder.directory(new File("/home/"));
Process Demo_process = Process_Builder.start();
InputStream Input_Stream = Demo_process.getInputStream();
int Exit_Code = Demo_process.exitValue();
System.out.println(Exit_Code);
Demo_process.destroy();
추가 cURL 명령의 경우 ProcessBuilder를 재사용하거나 명령을 배열로 전달할 수 있습니다.
방법 2: cURL을 Runtime.getRuntime과 함께 사용
Java에서 명령을 실행하는 또 다른 방법은 프로세스 클래스의 인스턴스를 가져오는 Runtime.getRuntime()입니다. Runtime.getRuntime()은 Java에서 cURL을 사용하는 좋은 대안입니다.
Java에서 Runtime.getRuntime을 사용하여 cURL을 실행해 보겠습니다.
String Demo_Command = "curl -X POST https://localhost/post --data delft1=stack1&delft2=stack2";
Process Demo_process = Runtime.getRuntime().exec(Demo_Command);
위의 코드는 cURL 및 Runtime.getRuntime 메서드를 사용하여 게시 요청을 보냅니다. 이제 위에서 설명한 것과 동일한 방법으로 InputStream을 가져올 수 있습니다.
String Demo_Command = "curl -X POST https://localhost/post --data delft1=stack1&delft2=stack2";
Process Demo_process = Runtime.getRuntime().exec(Demo_Command);
InputStream Input_Stream = Demo_process.getInputStream();
Demo_process.destroy();
인스턴스가 더 이상 필요하지 않으면 프로세스 인스턴스에서 destroy() 메서드를 사용하여 시스템 리소스를 해제해야 합니다.