亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用Socket類實現HTTP協議客戶端應用(1)

2019-11-18 11:10:59
字體:
來源:轉載
供稿:網友

Http客戶端程序已集成在java語言中,可以通過URLConnection類調用。遺憾的是,由于SUN沒有公布Http客戶程序的源碼,它實現的細節仍是一個謎。本文根據HTTP協議規范,用Java.net.Socket類實現一個HTTP協議客戶端程序。

1.Socket類

了解TCP/ip協議集通信的讀者知道,協議間的通信是通過Socket完成的。在Java.net包中,Socket類就是對Socket的具體實現。它通過連接到主機后,返回一個I/O流,實現協議間的信息交換。

2 . HTTP協議

HTTP協議同其它TCP/IP協議集中的協議一樣,是遵循客戶/服務器模型工作的??蛻舳税l往服務端的信息格式如下:

請求方法 URL HTTP協議的版本號

提交的元信息

**空行**

實體

請求方法是對這次連接工作的說明,目前HTTP協議已經發展到1.1版,它包括GET、HEAD、POST、DELETE、OPTIONS、TRACE、PUT七種。元信息是關于當前請求的信息。通過分析元信息,可以檢查實體數據是否完整,接收過程是否出錯,類型是否匹配等。元信息的引入使HTTP協議通信更加穩妥可靠。實體是請求的具體內容。

將上述報文發往Web服務器,假如成功,應答格式如下:

HTTP協議的版本號 應答狀態碼 應答狀態碼說明

接收的元信息

**空行**

實體

以上報文發向客戶端,并且接收成功,彼此間關閉連接,完成一次握手。

下面用最常用的GET方法,來說明具體的報文應用

GET http://www.youhost.com HTTP/1.0

accept: www/source; text/Html; image/gif; image/jpeg; */*

User_Agent: myAgent

**空行**

這個報文是向www.youhost.com主機請求一個缺省HTML文檔。客戶端HTTP協議版本號是1.0版,元信息包括可接收的文件格式,用戶代理,每一段之間用回車換行符分隔,最后以一個空行結束。發向服務器后,假如執行過程正常,服務器返回以下代碼:

HTTP/1.1 200 OK

Date: Tue, 14 Sep 1999 02:19:57 GMT

Server: Apache/1.2.6

Connection: close

Content-Type: text/html

**空行**

<html><head>...</head><body>...</body></html>

HTTP/1.1表示這個HTTP服務器是1.1版,200是服務器對客戶請求的應答狀態碼,OK是對應答狀態碼的解釋,之后是這個文檔的元信息和文檔正文。(相關應答狀態碼和元信息的解釋請參閱Inetrnet標準草案:RFC2616)。

3. HTTP客戶端程序:

import java.net.*;

import java.io.*;

import java.util.PRoperties;

import java.util.Enumeration;

public class Http {

protected Socket client;

protected BufferedOutputStream sender;

protected BufferedInputStream receiver;

protected ByteArrayInputStream byteStream;

protected URL target;

private int responseCode=-1;

private String responseMessage="";

private String serverVersion="";

private Properties header = new Properties();

public Http() { }

public Http(String url) {

GET(url) ;

}

/* GET方法根據URL,會請求文件、數據庫查詢結果、程序運行結果等多種內容 */

public void GET(String url) {

try {

checkHTTP(url);

openServer(target.getHost(),target.getPort() );

String cmd = "GET "+ getURLFormat(target) +" HTTP/1.0 "

+ getBaseHeads()+" ";

sendMessage(cmd);

receiveMessage();

}catch(ProtocolException p) {

p.printStackTrace();

return;

}catch(UnknownHostException e) {

e.printStackTrace();

return;

}catch(IOException i)

i.printStackTrace();

return;

}

}

/*

* HEAD方法只請求URL的元信息,不包括URL本身。若懷疑本機和服務器上的

* 文件相同,用這個方法檢查最快捷有效。

*/

public void HEAD(String url) {

try {

checkHTTP(url);

openServer(target.getHost(),target.getPort() );

String cmd = "HEAD "+getURLFormat(target)+" HTTP/1.0 "

+getBaseHeads()+" ";

sendMessage(cmd);

receiveMessage();

}catch(ProtocolException p) {

p.printStackTrace();

return;

}catch(UnknownHostException e) {

e.printStackTrace();

return;

}catch(IOException i)

i.printStackTrace();

return;

}

}

/*

* POST方法是向服務器傳送數據,以便服務器做出相應的處理。例如網頁上常用的

* 提交表格。

*/

public void POST(String url,String content) {

try {

checkHTTP(url);

openServer(target.getHost(),target.getPort() );

String cmd = "POST "+ getURLFormat(target) +"

HTTP/1.0 "+getBaseHeads();

cmd += "Content-type: application/x-www-form-urlencoded ";

cmd += "Content-length: " + content.length() + " ";

cmd += content+" ";

sendMessage(cmd);

receiveMessage();

}catch(ProtocolException p) {

p.printStackTrace();

return;

}catch(UnknownHostException e) {

e.printStackTrace();

return;

}catch(IOException i)

i.printStackTrace();

return;

}

}

protected void checkHTTP(String url) throws ProtocolException {

try {

URL target = new URL(url);

if(target==null !target.getProtocol().toUpperCase().equals("HTTP") )

throw new ProtocolException("這不是HTTP協議");

this.target = target;

}catch(MalformedURLException m) {

throw new ProtocolException("協議格式錯誤");

}

}

/*

* 與Web服務器連接。若找不到Web服務器,InetAddress會引發UnknownHostException

* 異常。若Socket連接失敗,會引發IOException異常。

*/



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲电影av在线| 亚洲国产精品推荐| 亚洲欧美成人在线| 日韩av免费看网站| 国产精品日韩专区| 欧美激情久久久| 日韩视频免费观看| 欧美激情精品久久久| 亚洲免费伊人电影在线观看av| 国产精品视频色| 精品中文视频在线| 上原亚衣av一区二区三区| 日韩成人在线视频网站| 亚洲伊人久久大香线蕉av| 欧美国产精品va在线观看| 欧洲s码亚洲m码精品一区| 久久久精品在线观看| 日日噜噜噜夜夜爽亚洲精品| 中日韩美女免费视频网址在线观看| 国产一区二区三区网站| 日韩av片免费在线观看| 性色av一区二区三区免费| 久久久噜噜噜久久久| 成人黄色片网站| 色婷婷久久一区二区| 2025国产精品视频| 精品久久国产精品| 亚洲欧美制服第一页| 欧美主播福利视频| 国产精品激情av在线播放| 97国产精品免费视频| 国产精品女人久久久久久| 成人久久久久爱| 亚洲日本aⅴ片在线观看香蕉| 久久黄色av网站| 少妇高潮久久77777| 欧美日韩中文字幕综合视频| 国产噜噜噜噜久久久久久久久| 久久久久国产精品www| 国内外成人免费激情在线视频| 国产精品主播视频| 国模吧一区二区三区| 日韩欧美中文第一页| 国产精品第3页| 91精品啪在线观看麻豆免费| 日韩精品免费电影| 国产精品视频地址| 久久久精品一区二区| 日韩三级成人av网| 日韩成人在线免费观看| 欧美午夜影院在线视频| 亚洲精品成人久久久| 国产成人高潮免费观看精品| 亚洲美女av电影| 日本成人在线视频网址| 亚洲精品日韩激情在线电影| 国产精品天天狠天天看| 欧美日韩亚洲成人| 亚洲综合社区网| 欧美一乱一性一交一视频| 亚洲欧美日韩中文视频| 日韩av在线网| 精品久久久国产精品999| 亚洲视频在线观看网站| 在线观看欧美日韩| 不卡av电影院| 亚洲欧美综合精品久久成人| 欧美极品欧美精品欧美视频| 国产精品精品久久久久久| 亚洲最大成人免费视频| 欧美成人免费全部观看天天性色| 久久久999精品视频| 国产精品色婷婷视频| 欧美久久精品一级黑人c片| 国产欧美在线看| 成人h猎奇视频网站| 久久精品国产一区二区电影| 国产成人av网址| 国产丝袜精品第一页| 992tv成人免费影院| 日韩精品免费在线播放| 中文字幕日韩精品在线观看| 国产精品视频免费在线| 国产精品情侣自拍| 精品久久久久久中文字幕一区奶水| 最近中文字幕mv在线一区二区三区四区| 97成人精品区在线播放| 久久久91精品国产| 国产精品热视频| 亚洲成人动漫在线播放| 亚洲国产高潮在线观看| 日韩欧美一区二区三区| 在线视频免费一区二区| 黑丝美女久久久| 一区二区国产精品视频| 国产精品免费看久久久香蕉| 亚洲色图25p| 国产精品精品一区二区三区午夜版| 91在线观看免费高清完整版在线观看| 成人综合网网址| 57pao国产精品一区| 色狠狠久久aa北条麻妃| 成人av电影天堂| 亚洲国产中文字幕久久网| 欧洲中文字幕国产精品| 亚洲国产精彩中文乱码av在线播放| 国产欧美精品一区二区三区-老狼| 欧美日韩另类视频| 国产成人+综合亚洲+天堂| 最近2019中文字幕大全第二页| 欧美性videos高清精品| 精品一区二区三区四区在线| 91久久夜色精品国产网站| 欧美肥老妇视频| 九色精品美女在线| 91成人在线观看国产| 亚洲精品91美女久久久久久久| 国产婷婷色综合av蜜臀av| 91久久精品国产91久久性色| 九九热99久久久国产盗摄| 亚洲福利视频在线| 91免费国产视频| 尤物99国产成人精品视频| 欧美国产视频一区二区| 亚洲男子天堂网| 国产精品老女人视频| 欧美疯狂xxxx大交乱88av| 欧美在线免费观看| 欧美激情在线观看视频| 国产精品久久网| 欧美色视频日本高清在线观看| 国产精品伦子伦免费视频| 国产视频在线一区二区| 欧美夜福利tv在线| 91av在线视频观看| 亚洲色图校园春色| 欧美极品少妇xxxxⅹ喷水| 日韩av手机在线看| 欧美黑人巨大精品一区二区| 亚洲性无码av在线| 国产精品欧美风情| 2018日韩中文字幕| 中文字幕日韩精品在线观看| 欧美一级电影在线| 亚洲精品美女免费| 在线观看国产精品淫| 欧美性受xxx| 久久久久99精品久久久久| 欧美日韩视频在线| 色777狠狠综合秋免鲁丝| 91精品91久久久久久| 亚洲美女视频网站| 亚洲精品国产精品乱码不99按摩| 亚洲精品乱码久久久久久按摩观| 日韩免费在线看| 最好看的2019年中文视频| 中文字幕av一区| 4p变态网欧美系列| 超薄丝袜一区二区| 欧美日韩亚洲视频| 精品久久久久久中文字幕大豆网| 欧美国产第一页| 国产91在线高潮白浆在线观看| 精品av在线播放|