kafka java는 URL을 통해 서버에 연결합니다.
네트워크 서버에 연결하고 서버에서 지정된 URL을 다운로드할 수 있습니다. HTTP 프로토콜은 프로그램에서 직접 사용됩니다.
프로그램은 출력 스트림을 정의하고 다운로드된 URL의 콘텐츠는 이 스트림에 기록됩니다. 입력 및 출력 스트림은 소켓을 통해 획득됩니다.
view sourceprint?
01 import java.io .*;
02 import java.net.*;
03 public class HttpClient {
04 public static void main(String[] args) {
05 try {
06 // 데모 매개변수:
07 if ((args.length != 1) && (args.length ! = 2))
08 throw new IllegalArgumentException("Wrong number of args")
09 //출력 스트림을 정의하면 다운로드된 URL 콘텐츠가 이 스트림에 기록됩니다.
09 p>
10 OutputStream to_file;
11 if (args.length == 2) to_file = new FileOutputStream(args[1])
12 else to_file = System. out;
13 //URL 클래스를 사용하여 사용자가 지정한 URL을 여러 부분으로 구문 분석합니다.
14 URL url = new URL(args[0])
15 String 프로토콜 = url.getProtocol();
16 if (!protocol.equals("http")) // 지원되는 프로토콜이 충족되는지 확인
17 throw new IllegalArgumentException("'http:' 프로토콜을 사용해야 합니다.")
18 String Host = url.getHost()
19 int port = url.getPort(); /p>
20 if (port == -1) port = 80; //지정된 포트가 없으면 기본 포트를 사용합니다.
21 String filename = url.getFile() p>
22 // 지정된 호스트 및 포트에 대한 네트워크 소켓 연결을 엽니다.
23 소켓 소켓 = new Socket(host, port)
24 // 입력 받기 및 소켓을 통한 출력 스트림
25 InputStream from_server = 소켓.getInputStream()
26 PrintWriter to_server = new PrintWriter(socket.getOutputStream())
27
28 //다운로드할 파일을 지정하여 네트워크 서버에 HTTP GET 명령을 보냅니다.
29 //매우 간단한 HTTP 프로토콜의 이전 버전 사용
30 to_server.print( "GET " + 파일 이름 + "\n\n")
31 to_server.flush() // 즉시 보내기
32 // 이제 서버의 응답을 읽고 넣습니다. 수신된 내용은 파일에 기록됩니다.
33 byte[] buffer = new byte[4096]
34 int bytes_read; p>35 while((bytes_read = from_server.read(buffer)) != -1)
36 to_file.write(buffer, 0, bytes_read)
37 // When 서버가 연결을 닫으면 해당 항목도 닫힙니다.
38 소켓.close()
39 to_file.close()
40 } p>
41 catch (예외 e) { // 게시 오류
42 System.err.println(e)
43 System.err.println("사용법: java HttpClient
44 }
45 }
46 }