当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:13:00  来源:本站整理

Java网络编程从入门到精通(22):实现HTTP模拟器[Java编程]

赞助商链接



  本文“Java网络编程从入门到精通(22):实现HTTP模拟器[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在谈论HTTP协议的具体恳求和呼应头字段之前,让我们先来操纵从前所学的知识来实现一个HTTP模拟器.所谓HTTP模拟器就是可以在用户输入HTTP的恳求消息后,由这个模拟器将HTTP恳求发送给呼应的服务器,再接纳服务器的呼应消息.这个HTTP模拟器有几下特点:

1.可以手工输入HTTP恳求,并向服务器发送.

2.接纳服务器的呼应消息.

3.消息头和实体内容分段显示,也就是说,并非象Telnet等客户端一样将HTTP响

应消息全部显示,而是先显示消息头,然后由用户决意能否显示实体内容.

4.集合发送恳求.这个HTTP模拟器和Telnet差别的是,并非一开始就衔接服务器,

而是将域名、端口以及HTTP恳求消息都输完后,才衔接服务器,并将这些恳求发送给服务器.这样做的可以预防服务器提早关闭网络衔接的现象.

5.可以循环做上述的操作.

从以上的描写看,要实现这个HTTP模拟器需求以下五步:

1.成立一个大循环,在循环内部是一个恳求/呼应对.这样便可以向服务器发送多次恳求/呼应以了.下面的四步都是被包含在循环内部的.

2.从掌握台读取域名和端口,这个功效可以由readHostAndPort(...)来完成.

3.从掌握台读取HTTP恳求消息,这个功效由readHttpRequest(...)来完成.

4.向服务器发送HTTP恳求消息,这个功效由sendHttpRequest()来完成.

5.读取服务器回送的HTTP呼应消息,这个功效由readHttpResponse(...)来完成.

下面我们就来渐渐实现这五步:

1、成立一个大循环

在成立这个循环之前,先成立一此中叫HttpSimulator的类,并在这个类中定义一个run办法用来运行这个程序.实现代码以下:

001  package http;
002
003  import java.net.*;
004  import java.io.*;
005
006  public class HttpSimulator
007  {
008      private Socket socket;
009      private int port = 80;
010      private String host = "localhost";
011      private String request = ""; // HTTP恳求消息
012      private boolean isPost, isHead;
013
014      public void run() throws Exception
015      {
016          BufferedReader reader = new BufferedReader(new InputStreamReader(
017                  System.in));
018          while (true)  // 开始大循环
019          {
020              try
021              {
022                  if (!readHostAndPort(reader))
023                      break;
024                  readHttpRequest(reader);
025                  sendHttpRequest();
026                  readHttpResponse(reader);
027              }
028              catch (Exception e)
029              {
030                  System.out.println("err:" + e.getMessage());
031              }
032          }
033      }
034      public static void main(String[] args) throws Exception
035      {
036          new HttpSimulator().run();
037      }
038  }

从上面的代码可以看出,第022、024、025和026辨别调用了上述的四个办法.这些办法的具体实现将在背面谈论.上面的代码除了调用这四个核心办法外,还做了一些预备工作.在008至012行定义了一些今后要用到的变量.在016和017行利用掌握台的输入流成立了BufferedReader对象,通过这个对象,可以直接从掌握台读取字符串,而不是一个个地字节.


  以上是“Java网络编程从入门到精通(22):实现HTTP模拟器[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .