Java에서 cURL 사용

Sheeraz Gul 2023년6월20일
  1. 자바의 ‘cURL’
  2. Java에서 cURL을 사용하는 다양한 방법
Java에서 cURL 사용

오늘은 자바에서 cURL에 대해 알아보겠습니다. ProcessBuilderRuntime.getRuntime과 함께 cURL을 사용하는 방법도 배웁니다.

자바의 ‘cURL’

cURLcURL 클라이언트와 서버 간에 데이터를 전송하는 네트워킹 도구입니다. cURLHTTP, FTP, TELNETSCP와 같은 프로토콜을 사용합니다.

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: cURLRuntime.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);

위의 코드는 cURLRuntime.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() 메서드를 사용하여 시스템 리소스를 해제해야 합니다.

작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook