HTTP客戶端Wininet精品教程_第1頁
HTTP客戶端Wininet精品教程_第2頁
HTTP客戶端Wininet精品教程_第3頁
HTTP客戶端Wininet精品教程_第4頁
HTTP客戶端Wininet精品教程_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2.9 HTTP運用2.9.1 HTTP運用開發(fā)的分類HTTP客戶HTTP效力器效力器端運用程序2.9.2 HTTP運用開發(fā)方法運用Socket編程接口運用動態(tài)鏈接庫或ActiveX控件 .本講內(nèi)容2.9.3 運用控件開發(fā)HTTP客戶端運用Internet Transfer控件屬性Internet Transfer控件方法Internet Transfer控件事件2.9.4 運用WinInet開發(fā)HTTP客戶端運用例如主要實現(xiàn)步驟.2.9.1 HTTP運用開發(fā)的分類1.1 HTTP客戶程序 HTTP協(xié)議作為Web的技術(shù)組件之一為Web的勝利奠定了重要的根底它提供了客戶和效力器進展交互的機制并對

2、交互的語法和語義制定了一致的規(guī)范 Web上很多運用的開發(fā)都與HTTP協(xié)議有著關(guān)聯(lián)或者圍繞著HTTP協(xié)議展開或者需求HTTP協(xié)議的支持 可以說HTTP協(xié)議貫穿了Web上多個層次的運用開發(fā)如下圖 從該圖中可以看出HTTP運用可以分為三種類型HTTP客戶程序.2.9.1 HTTP運用開發(fā)的分類(續(xù)) HTTP客戶程序 HTTP客戶程序可以看作是一種用戶代理agent ,它的作用是代表用戶和Web效力器進展交互,以實現(xiàn)下載文檔提交信息等目的。 一些典型的HTTP客戶程序包括 Web閱讀器:其用途主要是供用戶閱讀Web效力器上的HTML文檔。例如Netscape Navigator Microsoft

3、IE等 Web文檔下載工具:其用途主要是采用斷點續(xù)傳多線程等手段協(xié)助用戶快速地從Web效力器上下載資源。例如NetAntsNet Vampire等 Web Robot: 其用途主要是出于信息檢索等目的而對Web遍歷,即從某個URL開場沿著Web上的超鏈采用深度優(yōu)先或廣度優(yōu)先的方法來下載一切的Web頁面。例如Altavista等搜索引擎中均運用了這種程序 .2.9.1 HTTP運用開發(fā)的分類(續(xù)) HTTP客戶程序的根本功能 雖然上述各個HTTP客戶程序的作用和實現(xiàn)方法各不一樣,但至少都具備以下兩項根本功能: 與用戶的交互- 提供人機交互的手段可視化界面或者命令行方式供用戶來表達其要求,同時將執(zhí)

4、行的結(jié)果展現(xiàn)給用戶。- 對于最終用戶而言,要求他們掌握HTTP中的各種音訊的語法和語義是不現(xiàn)實的,因此人機交互要盡能夠地簡單直觀。例如在Web閱讀器中,用戶僅給出要閱讀的Web頁面的地址就可以看到該頁面,至于運用HTTP協(xié)議來實現(xiàn)這一目的細節(jié)對用戶是透明的,這些任務(wù)應(yīng)該由HTTP客戶程序替代用戶完成。.2.9.1 HTTP運用開發(fā)的分類(續(xù)) 與效力器的交互- 根據(jù)用戶提出的要求按照HTTP協(xié)議規(guī)范和效力器進展交互,以完成用戶的要求- 處置如何和效力器建立銜接,運用何種語法格式來發(fā)送懇求音訊、如何解釋效力器的呼應(yīng)音訊等問題。這一切都要遵照HTTP協(xié)議中給出的規(guī)定可以看出,一個HTTP客戶程序?qū)?/p>

5、踐上是HTTP協(xié)議內(nèi)容的部分實現(xiàn)。因此要可以開發(fā)HTTP客戶程序就應(yīng)該透徹地了解HTTP協(xié)議中給出的客戶和效力器的交互機制,正確地掌握各種音訊的語法和語義規(guī)范需求闡明的是除了要實現(xiàn)上述根本功能以外HTTP客戶程序能夠還要具備一些與HTTP協(xié)議本身無關(guān)的功能例如一個Web閱讀器除了可以根據(jù)用戶的要求將指定的Web頁面下載下來,還要可以按照HTML規(guī)范對該頁面進展解析,并在可視化的界面上將其展現(xiàn)出來.2.9.1 HTTP運用開發(fā)的分類(續(xù))下面我們以Web閱讀器為例對HTTP客戶程序的內(nèi)部構(gòu)造進展粗略的分析.2.9.1 HTTP運用開發(fā)的分類(續(xù))該Web閱讀器由以下幾個部分組成: 用戶接口:接納

6、用戶的輸入,并將效力器前往的呼應(yīng)展現(xiàn)給用戶。 用戶輸入解析器:對用戶輸入進展解析,并將結(jié)果傳送給控制器。 控制部分:是Web閱讀器的中心部分,擔(dān)任協(xié)調(diào)各個部件的運作。 HTTP客戶:假設(shè)用戶的輸入是要求訪問HTTP效力器,那么就將其以HTTP懇求音訊的方式提交給效力器,并接納和解析效力器的呼應(yīng)。 其它客戶用戶:能夠還會訪問Internet上的FTP等效力,因此需求有基于相應(yīng)協(xié)議的客戶部分,例如FTP客戶。 HTML解析器:假設(shè)效力器前往的音訊中包含HTML文件,那么對其按照HTML語法進展解析。 其它解析器:假設(shè)HTML文件中包含腳本言語等成分,例如VBScript, 那么對其按照相應(yīng)的規(guī)范進

7、展解析,在后面的章節(jié)中我們將對VBScript進展詳細討論。 格式化顯示:將解析結(jié)果輸出到可視化界面上供用戶閱讀。.2.9.1 HTTP運用開發(fā)的分類(續(xù))1.2 HTTP效力器程序 HTTP效力器 HTTP效力器程序的作用是為用戶提供效力。例如前往用戶想閱讀的文檔等,為了實現(xiàn)這一目的,HTTP效力器程序必需按照HTTP協(xié)議規(guī)范和客戶進展交互。 如何和客戶建立銜接 如何解釋客戶的懇求音訊 如何按照用戶的要求執(zhí)行相應(yīng)的處置 運用何種語法格式來將處置結(jié)果作為呼應(yīng)音訊前往給客戶 一個HTTP效力器程序?qū)嵺`上也是HTTP協(xié)議內(nèi)容的部分實現(xiàn),因此要可以開發(fā)HTTP效力器程序也應(yīng)該透徹地了解HTTP協(xié)議中

8、給出的客戶和效力器交互機制,正確地掌握各種音訊的語法和語義規(guī)范。.2.9.1 HTTP運用開發(fā)的分類(續(xù))需求闡明的是除了要實現(xiàn)上述根本功能以外,HTTP效力器程序還要具備其它的一些功能: 可以將客戶提交的信息傳送給CGI程序或ASP腳本等效力器端運用程序 接納效力器端運用程序的輸出結(jié)果等 這些功能的實現(xiàn)又依賴于效力器與效力器端運用程序的接口規(guī)范,例如CGI、 ISAPI等。如下圖:.2.9.1 HTTP運用開發(fā)的分類(續(xù)).2.9.1 HTTP運用開發(fā)的分類(續(xù)) Proxy 作為HTTP客戶和效力器之間的中介,Proxy等系統(tǒng)也是一種基于HTTP的運用程序 從HTTP客戶的角度來看,Pro

9、xy可以接納客戶提出的懇求,并向客戶前往呼應(yīng),因此Proxy可以看作是客戶運用程序的效力器。 從HTTP效力器的角度來看,Proxy可以向效力器提出懇求,并接納效力器前往的呼應(yīng),因此Proxy可以看作是效力器運用程序的客戶。 在開發(fā)HTTP代理時,要同時實現(xiàn)HTTP協(xié)議對客戶和效力器的要求,并參與一些額外的中間處置,例如代理的訪問認證、日志與計費、緩存控制等。.2.9.1 HTTP運用開發(fā)的分類(續(xù)).2.9.1 HTTP運用開發(fā)的分類(續(xù)) 效力器端運用程序的開發(fā)者最好可以了解HTTP客戶和效力器的交互機制,掌握一些HTTP音訊的語法和語義, 需求闡明的是除了要實現(xiàn)上述根本功能以外,HTTP

10、效力器程序還要具備其它的一些功能,例如 可以根據(jù)用戶提交的信息對數(shù)據(jù)庫效力器進展訪問 訪問Email等其它Internet效力 這些功能的實現(xiàn)又依賴于其它的一些規(guī)范例如ODBC OpenDataBase Connection、 POP3 PostOffice Protocol version 3和SMTP Simple Messaging Transport Protocol 等,有關(guān)這些規(guī)范的內(nèi)容不屬于本課程的范疇,感興趣的可以參見相關(guān)資料。.2.9.2 HTTP運用開發(fā)方法與例如 在上面引見的三種HTTP運用中,HTTP客戶和HTTP效力器與HTTP協(xié)議親密相關(guān)。 下面我們對這兩種運用的開

11、發(fā)方法進展引見,關(guān)于效力器端運用程序的開發(fā),我們將在后續(xù)對CGI 和ASP 部分進展引見。 運用程序通常建立在系統(tǒng)提供的運用編程接口API ApplicationProgramming Interface 之上HTTP運用程序的開發(fā)也不例外。按照所運用API籠統(tǒng)層次的不同,我們將其分為兩種: 一種運用的是網(wǎng)絡(luò)層的運用編程接口,例如Windows和Unix平臺上的Socket API等。 另一種運用的是運用層上的編程接口,例如Windows平臺上提供的WinInet DLL和Internet Transfer Control等。.2.9.2 HTTP運用開發(fā)方法與例如(續(xù)).2.9.2 HTTP

12、運用開發(fā)方法與例如(續(xù))2.1 運用Socket編程接口Socket接口是TCP/IP網(wǎng)絡(luò)最為通用的API之一,它提供了很多函數(shù)和例程供我們來開發(fā)TCP/IP網(wǎng)絡(luò)上的運用程序。此處我們不對Socket編程的細節(jié)進展引見,僅給出了運用Socket接口來實現(xiàn)HTTP客戶和效力器的普通方法,如下圖。在該圖中一切的Socket函數(shù)用英文標(biāo)出,而對HTTP音訊的處置用中文標(biāo)出。.2.9.2 HTTP運用開發(fā)方法與例如(續(xù)).2.9.2 HTTP運用開發(fā)方法與例如(續(xù)) HTTP效力器運用程序的開發(fā) 首先,運用Socket( )來生成一個Socket ,并經(jīng)過bind( )將該Socket綁定到HTTP端

13、口 然后運用listen( )來偵聽客戶的銜接懇求 當(dāng)客戶的銜接懇求到達后,運用accept( )來和客戶建立銜接 接著運用read( )來讀取客戶發(fā)來的懇求音訊 當(dāng)收到懇求音訊后,就要按照HTTP協(xié)議對音訊進展解析 根據(jù)客戶的懇求執(zhí)行相應(yīng)的處置程序,例如讀取指定的HTML文件 之后效力器將執(zhí)行結(jié)果封裝為符合HTTP協(xié)議的呼應(yīng)音訊 運用write( )將呼應(yīng)音訊發(fā)送給客戶這樣,一次HTTP交互終了。效力器又可以為另一個客戶懇求效力了.2 HTTP運用開發(fā)方法與例如 在HTTP客戶運用程序的開發(fā) 當(dāng)用戶提出某個要求時,客戶程序首先將用戶的要求封裝為符合HTTP協(xié)議規(guī)定的懇求音訊 然后,運用Soc

14、ket( )來生成一個Socket, 并經(jīng)過connect( )來懇求和效力器建立銜接在勝利地建立銜接后,客戶運用wrtie( )將懇求音訊發(fā)送給效力器 在效力器前往呼應(yīng)后,客戶運用read( )來讀取效力器的呼應(yīng)音訊,并按照HTTP協(xié)議對音訊進展解析,例如從音訊實體中提取出用戶所需求閱讀的文件 之后,將效力器的呼應(yīng)展現(xiàn)給用戶這樣,客戶便完成了用戶所提出的一個要求.2 HTTP運用開發(fā)方法與例如 Socket API的優(yōu)缺陷 優(yōu)點 在運用Socket API這種網(wǎng)絡(luò)編程接口來開發(fā)HTTP運用程序時,開發(fā)者可以深化到運用的底層,可以直接控制HTTP和TCP/IP上細節(jié),從而便于實現(xiàn)一些高級的特性

15、 缺陷 它對開發(fā)者的要求比較高,開發(fā)者必需求透徹地了解HTTP協(xié)議,同時要熟習(xí)TCP/IP網(wǎng)絡(luò)和Socket編程 此外開發(fā)過程也比較復(fù)雜,開發(fā)者必需處置許多細節(jié)問題:例如數(shù)據(jù)包的封裝與解析、網(wǎng)絡(luò)字節(jié)序的轉(zhuǎn)換、收發(fā)緩沖區(qū)的開辟與釋放等等.2.9.2 HTTP運用開發(fā)方法與例如(續(xù))2.2 運用動態(tài)鏈接庫或者ActiveX控件 為了順應(yīng)快速開發(fā)Internet運用程序的要求,我們可以運用一些現(xiàn)成的動態(tài)鏈接庫或者ActiveX控件。例如Microsoft提供的WinInet DLL和Internet Transfer Control等。 這些函數(shù)庫和控件本身曾經(jīng)實現(xiàn)了HTTP客戶的功能,并將其經(jīng)過A

16、PI提供出來供開發(fā)者調(diào)用。 這樣,我們在開發(fā)運用程序時就不需求涉及到Socket和HTTP的細節(jié)就可以方便地運用HTTP等效力,從而加快了運用開發(fā)的速度 嚴厲地說,此時我們開發(fā)的不并是HTTP客戶本身,而是一個HTTP客戶的外包裝程序,與HTTP真正親密相關(guān)的部分曾經(jīng)在函數(shù)庫或控件的內(nèi)部完成了.2.9.3 運用控件開發(fā)HTTP客戶端運用 下面,我們引見如何運用Internet Transfer控件來開發(fā)HTTP客戶端運用,在此我們運用的開發(fā)工具是Microsoft Visual Basic, 其它的開發(fā)工具,例如Visual C+或者Delphi等也同樣可以運用。3.1 Internet Tr

17、ansfer控件 Internet Transfer控件是Microsoft提供的一種ActiveX控件,它支持HTTP協(xié)議和FTP協(xié)議,在運用該控件時我們只需求對該控件設(shè)置一些屬性并調(diào)用一些方法就可以實現(xiàn)一些基于HTTP的功能。例如下載文件、向效力器提交數(shù)據(jù)等.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù)) 控件屬性Internet Transfer控件包含了很多屬性,其中比較重要的有 URL :該屬性給出了客戶所懇求資源的URL ,該屬性值會作為懇求音訊中的Request-URI發(fā)送給效力器 AccessType: 該屬性決議了控件用來與效力器進展通訊的訪問類型,經(jīng)過代理訪問或直接訪問,

18、其取值可以有三種 icUseDefault 0 表示運用注冊表中找到的缺省設(shè)置值 icDirect 1 表示直接連到Internet icNamedProxy 2 表示運用指定的代理效力器 Proxy :該屬性決議運用的代理效力器的稱號,只需當(dāng)控件的AccessType屬性設(shè)置為icNamedProxy (3) 時才運用該屬性.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù)) 控件屬性續(xù) UserName :該屬性表示用戶稱號,當(dāng)效力器需求客戶給出認證信息時,可以對該屬性進展設(shè)置,該屬性值會包含在懇求音訊的頭字段Authorization中發(fā)送給效力器 Password: 該屬性表示與用戶稱號

19、相關(guān)聯(lián)的用戶密碼,該屬性和UserName一同作為客戶的認證信息提供應(yīng)效力器 ResponseCode: 假設(shè)控件訪問效力器時發(fā)生了錯誤,那么該屬性中記錄了錯誤的代碼 ResponseInfo: 該屬性與ResponseCode類似,它給出了對所發(fā)生錯誤的文字性描畫. 控件方法Internet Transfer控件提供了以下幾個比較重要方法: OpenURL 該方法向遠程效力器懇求下載指定URL的文檔,其前往的結(jié)果為文檔內(nèi)容 該方法的語法為OpenUrl(url ,datatype) 其中url表示被檢索文檔的URL ,datatype指定數(shù)據(jù)類型,其取值可以為以下兩種:icString 0

20、表示把文檔內(nèi)容作為字符串來檢索icByteArray 1 表示把文檔內(nèi)容作為二進制字節(jié)數(shù)組來檢索 現(xiàn)實上該方法相當(dāng)于運用HTTP協(xié)議的GET方法向效力器發(fā)送懇求OpenURL 方法以同步方式運轉(zhuǎn),在這里同步指的是當(dāng)懇求音訊的發(fā)送和呼應(yīng)音訊的接納未完成之前不能執(zhí)行其它過程2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù)).2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù)) Execute 該方法要求遠程效力器執(zhí)行用戶指定的操作,相當(dāng)于向效力器發(fā)送HTTP懇求音訊 該方法的語法為Execute(url, operation, data,requestHeaders) 其中url表示被懇求音訊中包含的R

21、equest-URI, operation表示將要執(zhí)行的操作類型,其取值為HTTP的懇求方法,例如“GET “HEAD “POST等,data指定了用于“POST 或“PUT等操作中向效力器提交的實體,requestHeaders指定了向遠程效力器提交的懇求頭字段,例如傳來的附加的標(biāo)頭 可以看出,經(jīng)過設(shè)定Execute的參數(shù),可以決議懇求音訊中包含的懇求方法資源URL 頭字段等各種內(nèi)容 Execute 方法以異步方式傳輸數(shù)據(jù),Execute 方法在調(diào)用后會立刻前往而不會等待效力器的呼應(yīng)前往,而效力器前往的數(shù)據(jù)通常可以在后臺用GetChunk方法進展.2.9.3 運用控件開發(fā)HTTP客戶端運用(

22、續(xù)) GetChunk 該方法可以讀取從效力器前往數(shù)據(jù),這些數(shù)據(jù)通常是包含在效力器呼應(yīng)音訊中的實體 該方法的語法為GetChunk( size ,datatype ) 其中size 表示要讀取的數(shù)據(jù)塊的大小,datatype指定數(shù)據(jù)類型,其取值可以為以下兩種icString 0 表示把數(shù)據(jù)作為字符串來讀取icByteArray 1 表示把文檔內(nèi)容作為二進制字節(jié)數(shù)組來讀取 通常我們在控件的StateChanged事件中調(diào)用該方法 GetHeader 該方法可以從效力器前往的呼應(yīng)音訊中讀取頭字段 其語法格式為GetHeader (hdrName) 其中hdrName表示要讀取的頭字段的稱號 通常我

23、們可以在執(zhí)行OpenURL后調(diào)用該方法,也可以在控件的StateChanged事件中調(diào)用該方法.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù)) 控件的事件Internet Transfer控件可以產(chǎn)生一個重要的事件StateChanged 含義:該事件的發(fā)生標(biāo)志著控件與效力器交互的形狀有了變化,其詳細的形狀值在事件的參數(shù)state中給出 用途 當(dāng)客戶端運用Execute這種異步方法時,可以利用該事件來察看HTTP交互的形狀 通??梢栽谠撌录袑tate輸出到log文件中 也可以在state為icResponseCompleted (12)時調(diào)用getchunk方法來讀取從效力器前往的數(shù)據(jù)下

24、表中給出了StateChanged事件的各種形狀.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù)).2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù))下面我們引見如何運用WinInet開發(fā)HTTP客戶端運用 WinInet是Microsoft提供的一個函數(shù)庫,它對HTTP FTP等協(xié)議進展了籠統(tǒng),并提供了高層的接口運用程序,可以利用這些API來訪問HTTP等協(xié)議,從而實現(xiàn)Internet運用程序開發(fā) 在利用WinInet來開發(fā)運用時,可以運用VC+ 也可以運用VBDelphi等RAD Tools 此處我們不再象引見Internet Transfer控件那樣詳細地給出各個API的解釋,而是經(jīng)過一個

25、詳細的例子給出運用WinInet開發(fā)HTTP客戶端運用的主要步驟 希望經(jīng)過這個例子一方面可以對如何快速開發(fā)HTTP客戶運用程序有一個詳細的了解,另一方面可以加深對HTTP協(xié)議的了解.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù))4.1 一個例如我們希望開發(fā)一個HTTP客戶端應(yīng)器具有以下一些功能 功能1 可以接納用戶的輸入,并根據(jù)用戶要求獲取遠程效力器上的資源 功能2 可以顯示出HTTP客戶和效力器交互過程中的音訊內(nèi)容 功能3 可以將獲取的文件資源的保管到本地的指定File 功能4 利用IE來顯示所獲取的文件資源參見例如程序.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù))4.2 主要實現(xiàn)步驟

26、step1 InternetOpen 該函數(shù)用于初始化WinInet DLL的運用,它讓W(xué)inInet DLL初始化一個數(shù)據(jù)構(gòu)造,并前往一個有效的句柄供后續(xù)的WinInet函數(shù)運用.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù))4.2 主要實現(xiàn)步驟step2 InternetConnect 該函數(shù)用于翻開與指定Web站點的一個HTTP Session, 假設(shè)銜接勝利那么該函數(shù)將前往一個有效的HTTP session句柄.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù))4.2 主要實現(xiàn)步驟step3 HttpOpenRequest 該函數(shù)用于創(chuàng)建一個HTTP懇求的數(shù)據(jù)構(gòu)造,在數(shù)據(jù)構(gòu)造中包含了要

27、發(fā)送給效力器的懇求,以及作為懇求的一部分的頭字段,該函數(shù)假設(shè)執(zhí)行勝利的話,那么前往一個有效的HTTP懇求句柄.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù))4.2 主要實現(xiàn)步驟step4 HttpAddRequestHeaders 該函數(shù)用于向HTTP懇求中添加一個或多個HTTP懇求頭字段,每個頭字段以CRLF作為終了標(biāo)志。該函數(shù)假設(shè)執(zhí)行勝利的話,那么前往TRUE, 當(dāng)HTTP客戶程序比較復(fù)雜,需求對發(fā)送給HTTP效力器的懇求音訊進展細節(jié)性控制時,通常會運用該函數(shù),從而添加一些額外的、自在格式對頭字段。.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù))4.2 主要實現(xiàn)步驟step5 Http

28、SendRequest 該函數(shù)用于將懇求發(fā)送給HTTP效力器,該函數(shù)假設(shè)執(zhí)行勝利的話,那么前往TRUE 。當(dāng)HTTP客戶程序需求向HTTP效力器發(fā)送額外的頭字段,或在PUT、 POST等方法中向HTTP效力器提交數(shù)據(jù)時,該函數(shù)也可以實現(xiàn)這些功能。.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù))4.2 主要實現(xiàn)步驟step6 HttpQueryInfo 該函數(shù)用于讀取懇求或呼應(yīng)信息。該函數(shù)假設(shè)執(zhí)行勝利的話,那么前往TRUE。 客戶程序可以運用該函數(shù)來讀取向效力器所發(fā)送的懇求音訊。同時,在客戶向效力器發(fā)送完懇求后,效力器將向客戶前往呼應(yīng),包括:形狀碼、呼應(yīng)頭等。這些信息保管在客戶端中,客戶程序可

29、以運用該函數(shù)來讀取這些呼應(yīng)信息。.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù))4.2 主要實現(xiàn)步驟step7 InternetReadFile 該函數(shù)用于讀取效力器前往的實體數(shù)據(jù)。該函數(shù)假設(shè)執(zhí)行勝利的話,那么前往TRUE。 當(dāng)效力器收到客戶的HTTP懇求后,除了會前往形狀碼呼應(yīng)頭以外,還能夠會前往實體信息,客戶端可以反復(fù)運用該函數(shù)來獲取效力器前往的實體數(shù)據(jù),直到lpNumberOfBytesRead為0, 這就好似從本地文件讀取信息時遇到了EOF。.2.9.3 運用控件開發(fā)HTTP客戶端運用(續(xù))4.2 主要實現(xiàn)步驟step8 InternetCloseHandle 該函數(shù)用于封鎖曾經(jīng)翻開的Internet句柄,例如,運用InternetOpen InternetConnect HttpOpenRequest等函數(shù)所翻開的句柄。該函數(shù)假設(shè)執(zhí)行勝利的話,那么前往TRUE。.作業(yè)1 作業(yè)1-1 設(shè)計并實現(xiàn)一個HTTP文檔下載程序,該程序具備以下功能 根本

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論