當前位置:編程學習大全網 - 源碼下載 - kafka java 通過url連接服務器

kafka java 通過url連接服務器

可以連接到壹個網絡服務器並且能夠從這個服務器下載指定的URL,程序中直接使用HTTP協議。程序將定義壹個輸出流,下載的URL的內容將來被寫入這個流,通過socket來獲得輸入和輸出流:

view sourceprint?

01 import java.io.*;

02 import java.net.*;

03 public class HttpClient {

04 public static void main(String[] args) {

05 try {

06 // Demo參數:

07 if ((args.length != 1) && (args.length != 2))

08 throw new IllegalArgumentException("Wrong number of args");

09 //定義輸出流,下載的URL內容被寫入這個流

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 protocol = url.getProtocol();

16 if (!protocol.equals("http")) // 檢驗是否滿足支持的協議

17 throw new IllegalArgumentException("Must use 'http:' protocol");

18 String host = url.getHost();

19 int port = url.getPort();

20 if (port == -1) port = 80; //如果沒有指定端口,用默認端口

21 String filename = url.getFile();

22 // 打開壹個連接到指定主機和端口的網絡socket連接

23 Socket socket = new Socket(host, port);

24 // 通過socket來獲得輸入和輸出流

25 InputStream from_server = socket.getInputStream();

26 PrintWriter to_server = new PrintWriter(socket.getOutputStream());

27

28 // 發送HTTP GET命令給網絡服務器,指定要下載的文件

29 // 使用了壹個老版本非常簡單的HTTP協議

30 to_server.print("GET " + filename + "\n\n");

31 to_server.flush(); // 立即發送

32 // 現在讀取服務器的響應,把接收到的內容寫入文件

33 byte[] buffer = new byte[4096];

34 int bytes_read;

35 while((bytes_read = from_server.read(buffer)) != -1)

36 to_file.write(buffer, 0, bytes_read);

37 // 當服務器關閉連接時,也關閉stuff

38 socket.close();

39 to_file.close();

40 }

41 catch (Exception e) { // 發布錯誤

42 System.err.println(e);

43 System.err.println("Usage: java HttpClient <URL> [<filename>]");

44 }

45 }

46 }

  • 上一篇:微信歡樂麻將牌型匯總
  • 下一篇:我愛黑澀會的九妞妞
  • copyright 2024編程學習大全網