JavaSocket应答与HTTP服务器的瓜葛
Java Socket应答一直伴随着我们的编程生活,在不断的发展中有很多知识需要我们学习。下面我们就先来看看有关Java Socket应答的代码,有点长,但是看下去就会让你豁然开朗。
HTTP/1.1表示这个HTTP服务器是1.1版,200是服务器对客户请求的应答状态码,OK是对应答状态码的解释,之后是这个文档的元信息和文档正文。(相关应答状态码和元信息的解释请参阅Inetrnet标准草案:RFC2616)。
Http.java
2.import java.net.*;
3.import java.io.*;
4.import java.util.Properties;
5.import java.util.Enumeration;
6.public class Http {
7.protected Socket client;
8.protected BufferedOutputStream sender;
9.protected BufferedInputStream receiver;
10.protected ByteArrayInputStream byteStream;
11.protected URL target;
12.private int responseCode=-1;
13.private String responseMessage="";
14.private String serverVersion="";
15.private Properties header = new Properties();
16.public Http() { }
17.public Http(String url) {
18.GET(url) ;
19.}
20./* GET方法根据URL,会请求文件、数据库查询结果、程序运行结果等多种内容 */
21.public void GET(String url) {
22.try {
23.checkHTTP(url);
24.openServer(target.getHost(),target.getPort() );
25.String cmd = "GET "+ getURLFormat(target) +" HTTP/1.0"r"n"
26.+ getBaseHeads()+""r"n";
27.sendMessage(cmd);
28.receiveMessage();
29.} catch(ProtocolException p) {
30.p.printStackTrace();
31.return;
32.} catch(UnknownHostException e) {
33.e.printStackTrace();
34.return;
35.} catch(IOException i) {
36.i.printStackTrace();
37.return;
38.}
39.}
40./*
41.* HEAD方法只请求URL的元信息,不包括URL本身。若怀疑本机和服务器上的
42.* 文件相同,用这个方法检查最快捷有效。
43.*/
44.public void HEAD(String url) {
45.try {
46.checkHTTP(url);
47.openServer(target.getHost(),target.getPort() );
48.String cmd = "HEAD "+getURLFormat(target)+" HTTP/1.0"r"n"
49.+getBaseHeads()+""r"n";
50.sendMessage(cmd);
51.receiveMessage();
52.}catch(ProtocolException p) {
53.p.printStackTrace();
54.return;
55.}catch(UnknownHostException e) {
56.e.printStackTrace();
57.return;
58.}catch(IOException i) {
59.i.printStackTrace();
60.return;
61.}
62.}
63./*
64.* POST方法是向服务器传送数据,以便服务器做出相应的处理。例如网页上常用的
65.* 提交表格。
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>