基于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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值