1.我們知道服務器端和客戶端之間的信息交互,首先需要請求,那么基於HTTP協議的網絡編程與基本的網絡編程有什么區別呢?
將請求部分更加地細化,請求的內容需要加上HTTP規定的有關信息。
2.現在我們討論的是基於HTTP協議的網絡編程,那么服務器端我們就不寫了,因為事情變得更加復雜了,我們需要在服務器端寫入一篇超文本文件,然后對客戶端客戶端的請求做出處理。我們直接下載tomcat容器來幫助我們完成響應就行了。
3.在webapp下面建立一個html文件
4.
1 import java.net.Socket; 2 import java.net.InetAddress; 3 import java.io.*; 4 import java.net.UnknownHostException; 5 import java.io.IOException; 6 public class Client{ 7 public static void main (String[] args){ 8 9 10 11 try{ 12 Socket s=new Socket( "125.220.197.237", 8080); //主機ip 13 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream())); 14 bw.write("OPTIONS / HTTP/1.1"); 15 bw.newLine(); 16 bw.write("Host:125.220.197.237 :80"); 17 bw.newLine(); 18 bw.write("Content-Type: text/html"); 19 bw.newLine(); 20 bw.newLine(); 21 bw.flush(); 22 BufferedReader br = new BufferedReader(new InputStreamReader 23 24 (s.getInputStream())); 25 String str = null; 26 while((str = br.readLine()) != null) { 27 System.out.println(str); 28 } 29 bw.close(); 30 br.close(); 31 s.close(); 32 }catch(IOException e){} 33 34 35 36 37 38 39 40 } 41 42 43 44 }
5.如果請求部分寫錯,會報這些錯誤
- [http-nio-8080-exec-5] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
- Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
- java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
6.如果你發現這樣的情況,什么都不顯示,很明顯,你沒有跟服務器端連接。那么或許你的ip地址跟本機的ip地址不一樣(計算機在聯網和不聯網的情況下ip地址可能不一樣)
7.最終結果