基於HTTP協議的網絡編程(java)


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.如果請求部分寫錯,會報這些錯誤

  1. [http-nio-8080-exec-5] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header  
  2.  Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.  
  3.  java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens  

6.如果你發現這樣的情況,什么都不顯示,很明顯,你沒有跟服務器端連接。那么或許你的ip地址跟本機的ip地址不一樣(計算機在聯網和不聯網的情況下ip地址可能不一樣)

7.最終結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM