基于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.最终结果

原文地址:https://www.cnblogs.com/S-Mustard/p/7526371.html