Java网络编程从入门到精通(22):实现HTTP模拟器 - 编程入门网
的变量。在016和017行使用控制台的输入流建立了BufferedReader对象,通过这个对象,可以直接从控制台读取字符串,而不是一个个地字节。
Java网络编程从入门到精通(22):实现HTTP模拟器(2)时间:2011-01-12二、readHostAndPort(...)方法的实现 这个方法的主要功能是从控制台读取域名和端口。域名和端口通过":"隔开,":"和域名以及端口之间不能有空格。当从控制台读取一个"q"时,这个函数返回false,表示程序可以退出了,否则返回true,表示输入的域名和端口是正确的。这个方法的实现代码如下:
第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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |