快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
的变量。在016和017行使用控制台的输入流建立了BufferedReader对象,通过这个对象,可以直接从控制台读取字符串,而不是一个个地字节。

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

时间:2011-01-12

二、readHostAndPort(...)方法的实现

这个方法的主要功能是从控制台读取域名和端口。域名和端口通过":"隔开,":"和域名以及端口之间不能有空格。当从控制台读取一个"q"时,这个函数返回false,表示程序可以退出了,否则返回true,表示输入的域名和端口是正确的。这个方法的实现代码如下:

001  private boolean readHostAndPort(BufferedReader consoleReader) 002          throws Exception 003  { 004      System.out.print("host:port>"); 005      String[] ss = null; 006      String s = consoleReader.readLine(); 007      if (s.equals("q")) 008          return false; 009      else 010      { 011          ss = s.split("[:]"); 012          if (!ss[0].equals("")) 013              host = ss[0]; 014          if (ss.length > 1) 015              port = Integer.parseInt(ss[1]); 016          System.out.println(host + ":" + String.valueOf(port)); 017          return true; 018      } 019  }

第001行:这个方法有一个BufferedReader类型的参数,这个参数的值就是在HttpSimulator.java中的第016和017行根据控制台输入流建立的BufferedReader对象。

第 004 行:这输出HTTP模拟器的控制符,就象Windows的控制台的"C:">"一样。

第 006 行:从控制台读取一行字符串。

第 011 行:通过字符串的split方法和响应的正则表示式("[:]")将域名和端口分开。域名的默认值是localhost,端口的默认值是80。

三、readHttpRequest(...)方法的实现

这个方法的主要功能是从控制台读取HTTP请求消息,如果输入一个空行,表示请求消息头已经输完;如果使用的是POST方法,还要输入POST请求的实体内容。这个方法的实现代码如下:

001  private void readHttpRequest(BufferedReader consoleReader) 
002          throws Exception
003  {
004      System.out.println("请输入HTTP请求:");
005      String s = consoleReader.readLine();
006      request = s + "\r\n";
007      boolean isPost = s.substring(0, 4).equals("POST");
008      boolean isHead = s.substring(0, 4).equals("HEAD");
009      while (!(s = consoleReader.readLine()).equals(""))
010          request = request + s + "\r\n";
011      request = request + "\r\n";
012      if (isPost)
013      {
014          System.out.println("请输入POST方法的内容:");
015          s = consoleReader.readLine();
016          request = request + s;
017      }
018  }

第 005 行:读入HTTP请求消息的第一行。

第 007、008行:确定所输入的请求方法是不是POST和HEAD。

第 009、010行:读入HTTP请求消息的其余行。

第012、017行:如果HTTP请求使用的是POST方法,要求用户继续输入HTTP请求的实体内容。

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

时间:2011-01-12

四、sendHttpRequest()方法的实现

这个方法的功能是将request变量中的H

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号