整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          Web service

          Web service

          eb service是一個平臺獨立的,低耦合的,自包含的、基于可編程的web的應(yīng)用程序,可使用開放的XML(標(biāo)準通用標(biāo)記語言下的一個子集)標(biāo)準來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式的互操作的應(yīng)用程序。[1]

          Web Service技術(shù), 能使得運行在不同機器上的不同應(yīng)用無須借助附加的、專門的第三方軟件或硬件, 就可相互交換數(shù)據(jù)或集成。依據(jù)Web Service規(guī)范實施的應(yīng)用之間, 無論它們所使用的語言、 平臺或內(nèi)部協(xié)議是什么, 都可以相互交換數(shù)據(jù)。Web Service是自描述、 自包含的可用網(wǎng)絡(luò)模塊, 可以執(zhí)行具體的業(yè)務(wù)功能。Web Service也很容易部署, 因為它們基于一些常規(guī)的產(chǎn)業(yè)標(biāo)準以及已有的一些技術(shù),諸如標(biāo)準通用標(biāo)記語言下的子集XML、HTTP。Web Service減少了應(yīng)用接口的花費。Web Service為整個企業(yè)甚至多個組織之間的業(yè)務(wù)流程的集成提供了一個通用機制。

          歷史

          web廣泛用到的技術(shù):

          TCP/IP:通用網(wǎng)絡(luò)協(xié)議,被各種設(shè)備使用

          HTML(標(biāo)準通用標(biāo)記語言下的一個應(yīng)用):通用用戶界面,可以使用HTML標(biāo)簽顯示數(shù)據(jù)

          .NET: 不同應(yīng)用程序間共享數(shù)據(jù)與數(shù)據(jù)交換

          Java:寫一次可以在任何系統(tǒng)運行的通用編程語言,因為java具有跨平臺特性

          XML(標(biāo)準通用標(biāo)記語言下的一個子集):通用數(shù)據(jù)表達語言,在web上傳送結(jié)構(gòu)化數(shù)據(jù)的容易方法

          他們的特點是其開放性,跨平臺性,開放性正是Web services的基礎(chǔ)。

          近幾年來,Internet的迅猛發(fā)展使其成為全球信息傳遞與共享的巨大的資源庫。越來越多的網(wǎng)絡(luò)環(huán)境下的Web應(yīng)用系統(tǒng)被建立起來,利用HTML、CGI等Web技術(shù)可以輕松地在Internet環(huán)境下實現(xiàn)電子商務(wù)、電子政務(wù)等多種應(yīng)用。然而這些應(yīng)用可能分布在不同的地理位置,使用不同的數(shù)據(jù)組織形式和操作系統(tǒng)平臺,加上應(yīng)用不同所造成的數(shù)據(jù)不一致性,使得如何將這些高度分布的數(shù)據(jù)集中起來并得以充分利用成為急需解決的問題。

          隨著網(wǎng)絡(luò)技術(shù)、網(wǎng)絡(luò)運行理念的發(fā)展,人們提出一種新的利用網(wǎng)絡(luò)進行應(yīng)用集成的解決方案——Web Service。Web Service是一種新的Web應(yīng)用程序分支,其可以執(zhí)行從簡單的請求到復(fù)雜商務(wù)處理的任何功能。一旦部署以后,其他Web Service應(yīng)用程序可以發(fā)現(xiàn)并調(diào)用它部署的服務(wù)。因此,Web Service是構(gòu)造分布式、模塊化應(yīng)用程序和面向服務(wù)應(yīng)用集成的最新技術(shù)和發(fā)展趨勢。

          Web Service趨勢

          內(nèi)容更動態(tài)化

          帶寬Bandwidth更便宜,易于獲得

          存儲器Storage更便宜,更易獲得

          普遍式計算變得更加重要:大量的設(shè)備,例如移動電話,頁面,電腦,pc,已經(jīng)在Internet上變得普遍,平臺變得更多元化,像XML(標(biāo)準通用標(biāo)記語言下的一個子集)這樣的跨平臺技術(shù)變得更重要

          Web Service趨勢

          上述的這些趨勢意味著,更加智能的處理,操作和匯總內(nèi)容變得十分重要。讓我們看看按照Web services角度所預(yù)示的四個趨勢:

          內(nèi)容更加動態(tài):一個web service必須能合并從多個不同來源的內(nèi)容,可以包括股票,天氣,新聞等,在傳統(tǒng)環(huán)境中的內(nèi)容,如存貨水平,購物訂單或者目錄信息等,都從后端系統(tǒng)而來;

          帶寬更加便宜:web services可以分發(fā)各種類型的內(nèi)容(音頻,視頻流等);

          存儲更便宜::web services必須能聰明地處理大量數(shù)據(jù),意味著要使用數(shù)據(jù)庫,LDAP目錄,緩沖,和負載平衡軟件等技術(shù)保持可擴展能力;

          普遍式計算更重要:web services不能要求客戶使用某一版本的windows的傳統(tǒng)瀏覽器,必須支持各種設(shè)備,平臺,瀏覽器類型,各種內(nèi)容類型;

          兩種重要技術(shù)

          要達到這樣的目標(biāo),Web services要使用兩種技術(shù):

          XML(標(biāo)準通用標(biāo)記語言下的一個子集):XML是在web上傳送結(jié)構(gòu)化數(shù)據(jù)的偉大方式,Web services要以一種可靠的自動的方式操作數(shù)據(jù),HTML(標(biāo)準通用標(biāo)記語言下的一個應(yīng)用)不會滿足要求,而XML可以使web services十分方便的處理數(shù)據(jù),它的內(nèi)容與表示的分離十分理想;

          SOAP:SOAP使用XML消息調(diào)用遠程方法,這樣web services可以通過HTTP協(xié)議的post和get方法與遠程機器交互,而且,SOAP更加健壯和靈活易用;

          其他像UDDI和WSDL技術(shù)與XML和SOAP技術(shù)緊密結(jié)合用于服務(wù)發(fā)現(xiàn)。

          Web Service支持

          Web Service技術(shù)支持

          Web Service平臺需要一套協(xié)議來實現(xiàn)分布式應(yīng)用程序的創(chuàng)建。任何平臺都有它的數(shù)據(jù)表示方法和類型系統(tǒng)。要實現(xiàn)互操作性,Web Service平臺必須提供一套標(biāo)準的類型系統(tǒng),用于溝通不同平臺、編程語言和組件模型中的不同類型系統(tǒng)。這些協(xié)議有:

          XML和XSD

          可擴展的標(biāo)記語言(標(biāo)準通用標(biāo)記語言下的一個子集)是Web Service平臺中表示數(shù)據(jù)的基本格式。除了易于建立和易于分析外,XML主要的優(yōu)點在于它既與平臺無關(guān),又與廠商無關(guān)。XML是由萬維網(wǎng)協(xié)會(W3C)創(chuàng)建,W3C制定的XML SchemaXSD 定義了一套標(biāo)準的數(shù)據(jù)類型,并給出了一種語言來擴展這套數(shù)據(jù)類型。

          Web Service平臺是用XSD來作為數(shù)據(jù)類型系統(tǒng)的。當(dāng)你用某種語言如VB. NET或C# 來構(gòu)造一個Web Service時,為了符合Web Service標(biāo)準,所有你使用的數(shù)據(jù)類型都必須被轉(zhuǎn)換為XSD類型。如想讓它使用在不同平臺和不同軟件的不同組織間傳遞,還需要用某種東西將它包裝起來。這種東西就是一種協(xié)議,如 SOAP。

          xml web service

          SOAP

          SOAP即簡單對象訪問協(xié)議(Simple Object Access Protocol),它是用于交換XML(標(biāo)準通用標(biāo)記語言下的一個子集)編碼信息的輕量級協(xié)議。它有三個主要方面:XML-envelope為描述信息內(nèi)容和如何處理內(nèi)容定義了框架,將程序?qū)ο缶幋a成為XML對象的規(guī)則,執(zhí)行遠程過程調(diào)用(RPC)的約定。SOAP可以運行在任何其他傳輸協(xié)議上。例如,你可以使用 SMTP,即因特網(wǎng)電子郵件協(xié)議來傳遞SOAP消息,這可是很有誘惑力的。在傳輸層之間的頭是不同的,但XML有效負載保持相同。

          Web Service 希望實現(xiàn)不同的系統(tǒng)之間能夠用“軟件-軟件對話”的方式相互調(diào)用,打破了軟件應(yīng)用、網(wǎng)站和各種設(shè)備之間的格格不入的狀態(tài),實現(xiàn)“基于Web無縫集成”的目標(biāo)。

          WSDL

          Web Service描述語言WSDL 就是用機器能閱讀的方式提供的一個正式描述文檔而基于XML(標(biāo)準通用標(biāo)記語言下的一個子集)的語言,用于描述Web Service及其函數(shù)、參數(shù)和返回值。因為是基于XML的,所以WSDL既是機器可閱讀的,又是人可閱讀的。

          UDDI

          UDDI 的目的是為電子商務(wù)建立標(biāo)準;UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊中心的實現(xiàn)標(biāo)準規(guī)范,同時也包含一組使企業(yè)能將自身提供的Web Service注冊,以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實現(xiàn)標(biāo)準。

          調(diào)用RPC與消息傳遞

          Web Service本身其實是在實現(xiàn)應(yīng)用程序間的通信。我們有兩種應(yīng)用程序通信的方法:RPC遠程過程調(diào)用 和消息傳遞。使用RPC的時候,客戶端的概念是調(diào)用服務(wù)器上的遠程過程,通常方式為實例化一個遠程對象并調(diào)用其方法和屬性。RPC系統(tǒng)試圖達到一種位置上的透明性:服務(wù)器暴露出遠程對象的接口,而客戶端就好像在本地使用的這些對象的接口一樣,這樣就隱藏了底層的信息,客戶端也就根本不需要知道對象是在哪臺機器上。

          Web Service軟件支持

          操作系統(tǒng)離不開豐富的應(yīng)用軟件的支持。同樣,Web Service這項技術(shù)只有通過日益廣泛的應(yīng)用才能體現(xiàn)出其價值,比較流行的實現(xiàn)方法是使用.NET 和 Java兩種技術(shù),并且兩種實現(xiàn)方法可以互相操作;如今我們已經(jīng)可以看到使用微軟、Oracle、SUN、Borland等不同廠商的Web Service構(gòu)建工具建立的Web Service應(yīng)用。

          微軟.NET

          微軟的.NET技術(shù)應(yīng)該算是時下最為流行的Web Service 開發(fā)技術(shù)。首先因為其公司在以前相應(yīng)的產(chǎn)品就占有相當(dāng)大的市場份額,以至使新推出的.NET得以有比較穩(wěn)定的用戶群;其次也是更重要的是 .NET平臺不僅延續(xù)了微軟一貫的編程風(fēng)格,而且還增加了許多支持Web 服務(wù)的關(guān)鍵性技術(shù),使得.NET在操作的簡單性和執(zhí)行的穩(wěn)定性,高效性上達到了一個非常好的結(jié)合。

          微軟的Visual Studio. NET便是一個便于 Web 服務(wù)的開發(fā)工具。微軟的目標(biāo)是,將其新編程語言——C#作為Web Service的首選語言。雖然C#看起來與Java類似,但是還有一些Java中沒有的獨特的功能。.NET技術(shù)中用于Web Service 開發(fā)的主要工具是ASP. NET。從技術(shù)上說,ASP. net  提供了一些超出ASP以前版本的優(yōu)點(例如:代碼和HTML(標(biāo)準通用標(biāo)記語言下的一個應(yīng)用)的分離,與腳本語言相比較,對“真正”的編程語言如 C# 的支持)。

          IBM的WebSphere

          IBM公司是業(yè)界第一家能夠提供全面支持Web服務(wù)的電子商務(wù)基礎(chǔ)設(shè)施中間件的公司。通過多年來與W3C(The World Wide Web Consortium)的共同努力,包括DB2、Lotus、Tivoli 和WebSphere在內(nèi)的所有IBM軟件都實現(xiàn)了對SOAP、WSDL、UDDI、Linux、XML(標(biāo)準通用標(biāo)記語言下的一個子集)、J2EE等開放技術(shù)和標(biāo)準的全面支持。

          IBM公司的WebSphere也是比較好的基礎(chǔ)架構(gòu)軟件開發(fā)平臺。WebSphere軟件平臺及開發(fā)工具包括WebSphere Studio Application DeveloperWSAD  基于J2EE、XML 和Web服務(wù)等開放標(biāo)準,并具備 IBM 在可靠性、擴展性和安全性上的主要優(yōu)勢。WebSphere 是 IBM 在 Web Services策略中的核心平臺,它支持所有開發(fā)、發(fā)布、部署 Web Services應(yīng)用所必需的開放標(biāo)準和技術(shù),包括 UDDI,SOAP,J2EE,WSDL,和對 XML 技術(shù)集成的增強,這使得它在全球有很多用戶。

          Borland的JBuilder

          Borland公司在 JBuilder7中,用戶可以用其Borland Web Services Kit for Java和Borland JBuilder MobileSet 3進行更快捷地開發(fā)Web Service和無線應(yīng)用。這樣將使開發(fā)者能夠在同一個開發(fā)環(huán)境中輕松地創(chuàng)建和集成Web Service。新推出的JBuidler8更是針對Web Service開發(fā)更提供了方便和高效的方法。

          總之,在Web Service開發(fā)上,.NET 和Java都是很好的選擇,盡管兩者都有一些需要完善的地方,但是它們還是最好的開發(fā)手段和技術(shù)。具體選擇哪種開發(fā)工具,也是仁者見仁,智者見智的問題。從根本上說,這兩種方法沒有孰優(yōu)孰劣的問題,只是根據(jù)使用者對這兩種方法的掌握程度和對具體語言的偏愛程度來決定。

          Web Service應(yīng)用

          Web service到底是什么;在什么情況下你應(yīng)該使用Web service。

          研究一下當(dāng)前的應(yīng)用程序開發(fā),你會發(fā)現(xiàn)一個絕對的傾向:人們開始偏愛基于瀏覽器的客戶端應(yīng)用程序。這當(dāng)然不是因為客戶端能夠提供更好的用戶界面,而是因為它能夠避免花在桌面應(yīng)用程序發(fā)布上的高成本。發(fā)布桌面應(yīng)用程序成本很高,一半是因為應(yīng)用程序安裝和配置的問題,另一半是因為客戶端和服務(wù)器之間通信的問題。

          傳統(tǒng)的Windows客戶應(yīng)用程序使用DCOM來與服務(wù)器進行通信和調(diào)用遠程對象。配置好DCOM使其在一個大型的網(wǎng)絡(luò)中正常工作將是一個極富挑戰(zhàn)性的工作,同時也是許多IT工程師的噩夢。事實上,許多IT工程師寧愿忍受瀏覽器所帶來的功能限制,也不愿在局域網(wǎng)上去運行一個DCOM。在我看來,結(jié)果就是一個發(fā)布容易,但開發(fā)難度大而且用戶界面極其受限的應(yīng)用程序。極端的說,就是你花了更多的資金和時間,卻開發(fā)出從用戶看來功能更弱的應(yīng)用程序。不信?問問你的會計師對新的基于瀏覽器的會計軟件有什么想法:絕大多數(shù)商用程序用戶希望使用更加友好的Windows用戶界面。

          關(guān)于客戶端與服務(wù)器的通信問題,一個完美的解決方法是使用HTTP協(xié)議來通信。這是因為任何運行Web瀏覽器的機器都在使用HTTP協(xié)議。同時,當(dāng)前許多防火墻也配置為只允許HTTP連接。

          許多商用程序還面臨另一個問題,那就是與其他程序的互操作性。如果所有的應(yīng)用程序都是使用COM或.NET語言寫的,并且都運行在Windows平臺上,那就天下太平了。然而,事實上大多數(shù)商業(yè)數(shù)據(jù)仍然在大型主機上以非關(guān)系文件(VSAM)的形式存放,并由COBOL語言編寫的大型機程序訪問。而且,還有很多商用程序繼續(xù)在使用C++、Java、Visual Basic和其他各種各樣的語言編寫。除了最簡單的程序之外,所有的應(yīng)用程序都需要與運行在其他異構(gòu)平臺上的應(yīng)用程序集成并進行數(shù)據(jù)交換。這樣的任務(wù)通常都是由特殊的方法,如文件傳輸和分析,消息隊列,還有僅適用于某些情況的的API,如IBM的"高級程序到程序交流(APPC)"等來完成的。在以前,沒有一個應(yīng)用程序通信標(biāo)準,是獨立于平臺、組建模型和編程語言的。只有通過Web Service,客戶端和服務(wù)器才能夠自由的用HTTP進行通信,不論兩個程序的平臺和編程語言是什么。

          什么是Web Service

          對這個問題,我們至少有兩種答案。從表面上看,Web service 就是一個應(yīng)用程序,它向外界暴露出一個能夠通過Web進行調(diào)用的API。這就是說,你能夠用編程的方法通過Web來調(diào)用這個應(yīng)用程序。我們把調(diào)用這個Web service 的應(yīng)用程序叫做客戶。例如,你想創(chuàng)建一個Web service ,它的作用是返回當(dāng)前的天氣情況。那么你可以建立一個ASP頁面,它接受郵政編碼作為查詢字符串,然后返回一個由逗號隔開的字符串,包含了當(dāng)前的氣溫和天氣。要調(diào)用這個ASP頁面,客戶端需要發(fā)送下面的這個HTTP GET

          返回的數(shù)據(jù)就應(yīng)該是這樣:

          這個ASP頁面就應(yīng)該可以算作是Web service 了。因為它基于HTTP GET請求,暴露出了一個可以通過Web調(diào)用的API。當(dāng)然,Web service 還有更多的東西。

          下面是對Web service 更精確的解釋: Web services是建立可互操作的分布式應(yīng)用程序的新平臺。作為一個Windows程序員,你可能已經(jīng)用COM或DCOM建立過基于組件的分布式應(yīng)用程序。COM是一個非常好的組件技術(shù),但是我們也很容易舉出COM并不能滿足要求的情況。

          Web service平臺是一套標(biāo)準,它定義了應(yīng)用程序如何在Web上實現(xiàn)互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺上寫Web service ,只要我們可以通過Web service標(biāo)準對這些服務(wù)進行查詢和訪問。

          新平臺

          Web service平臺需要一套協(xié)議來實現(xiàn)分布式應(yīng)用程序的創(chuàng)建。Web service平臺必須提供一套標(biāo)準的類型系統(tǒng),用于溝通不同平臺、編程語言和組件模型中的不同類型系統(tǒng)。在傳統(tǒng)的分布式系統(tǒng)中,基于界面(interface)的平臺提供了一些方法來描述界面、方法和參數(shù)(譯注:如COM和COBAR中的IDL語言)。同樣的,Web service平臺也必須提供一種標(biāo)準來描述Web service,讓客戶可以得到足夠的信息來調(diào)用這個Web service。最后,我們還必須有一種方法來對這個Web service進行遠程調(diào)用。這種方法實際是一種遠程過程調(diào)用協(xié)議(RPC)。為了達到互操作性,這種RPC協(xié)議還必須與平臺和編程語言無關(guān)。下面幾個小節(jié)就簡要介紹了組成Web service平臺的這三個技術(shù)。

          XML和XSD

          可擴展的標(biāo)記語言(標(biāo)準通用標(biāo)記語言下的一個子集)是Web service平臺中表示數(shù)據(jù)的基本格式。除了易于建立和易于分析外,XML主要的優(yōu)點在于它既是平臺無關(guān)的,又是廠商無關(guān)的。無關(guān)性是比技術(shù)優(yōu)越性更重要的:軟件廠商是不會選擇一個由競爭對手所發(fā)明的技術(shù)的。

          XML解決了數(shù)據(jù)表示的問題,但它沒有定義一套標(biāo)準的數(shù)據(jù)類型,更沒有說怎么去擴展這套數(shù)據(jù)類型。例如,整形數(shù)到底代表什么?16位,32位,還是64位?這些細節(jié)對實現(xiàn)互操作性都是很重要的。W3C制定的XML Schema(XSD)就是專門解決這個問題的一套標(biāo)準。它定義了一套標(biāo)準的數(shù)據(jù)類型,并給出了一種語言來擴展這套數(shù)據(jù)類型。Web service平臺就是用XSD來作為其數(shù)據(jù)類型系統(tǒng)的。當(dāng)你用某種語言(如VB. NET或C#)來構(gòu)造一個Web service時,為了符合Web service標(biāo)準,所有你使用的數(shù)據(jù)類型都必須被轉(zhuǎn)換為XSD類型。你用的工具可能已經(jīng)自動幫你完成了這個轉(zhuǎn)換,但你很可能會根據(jù)你的需要修改一下轉(zhuǎn)換過程。

          SOAP

          Web service建好以后,你或者其他人就會去調(diào)用它。簡單對象訪問協(xié)議(SOAP)提供了標(biāo)準的RPC方法來調(diào)用Web service。實際上,SOAP在這里有點用詞不當(dāng):它意味著下面的Web service是以對象的方式表示的,但事實并不一定如此:你完全可以把你的Web service寫成一系列的C函數(shù),并仍然使用SOAP進行調(diào)用。SOAP規(guī)范定義了SOAP消息的格式,以及怎樣通過HTTP協(xié)議來使用SOAP。SOAP也是基于XML(標(biāo)準通用標(biāo)記語言下的一個子集)和XSD的,XML是SOAP的數(shù)據(jù)編碼方式。

          WSDL

          你會怎樣向別人介紹你的Web service有什么功能,以及每個函數(shù)調(diào)用時的參數(shù)呢?你可能會自己寫一套文檔,你甚至可能會口頭上告訴需要使用你的Web service的人。這些非正式的方法至少都有一個嚴重的問題:當(dāng)程序員坐到電腦前,想要使用你的Web service的時候,他們的工具(如Visual Studio)無法給他們提供任何幫助,因為這些工具根本就不了解你的Web service。

          解決方法是:用機器能閱讀的方式提供一個正式的描述文檔。Web service描述語言(WSDL)就是這樣一個基于XML(標(biāo)準通用標(biāo)記語言下的一個子集)的語言,用于描述Web service及其函數(shù)、參數(shù)和返回值。WSDL既是機器可閱讀的,又是人可閱讀的,這將是一個很大的好處。一些最新的開發(fā)工具既能根據(jù)你的Web service生成WSDL文檔,又能導(dǎo)入WSDL文檔,生成調(diào)用相應(yīng)Web service的代碼。

          UDDI

          Universal Description, Discovery and Integration

          為加速Web Service的推廣、加強Web Service的互操作能力而推出的一個計劃,基于標(biāo)準的服務(wù)描述和發(fā)現(xiàn)的規(guī)范(specification)。

          以資源共享的方式由多個運作者一起以Web Service的形式運作UDDI商業(yè)注冊中心。

          UDDI計劃的核心組件是UDDI商業(yè)注冊,它使用XML文檔來描述企業(yè)及其提供的Web Service。

          UDDI商業(yè)注冊提供三種信息:

          White Page包含地址、聯(lián)系方法、已知的企業(yè)標(biāo)識。

          Yellow Page包含基于標(biāo)準分類法的行業(yè)類別。

          Green Page包含關(guān)于該企業(yè)所提供的Web Service的技術(shù)信息,其形式可能是指向文件或URL的指針,而這些文件或URL是為服務(wù)發(fā)現(xiàn)機制服務(wù)的。

          Web Service開發(fā)實例

          利用WebService實現(xiàn)數(shù)據(jù)添加

          利用WebService實現(xiàn)數(shù)據(jù)刪除

          利用WebService給手機發(fā)短信[3]

          適合使用Web Service的情況

          跨越防火墻;

          應(yīng)用程序集成;

          B2B集成;

          軟件重用

          不適合使用Web服務(wù)的情況

          單機應(yīng)用程序;

          局域網(wǎng)上的同構(gòu)應(yīng)用程序

          X01 服務(wù)器狀態(tài)碼

          服務(wù)器狀態(tài)碼用來告知客戶端Web服務(wù)對本次的請求響應(yīng)狀態(tài)是什么。

          1、200 OK表示從客戶端發(fā)來的請求在服務(wù)器端被正常處理了。

          2、204 No Content 該狀態(tài)碼代表服務(wù)器接收的請求已成功處理,但在返回的響應(yīng)報文中不含實體的主體部分。

          3、206 Partial Content 該狀態(tài)碼表示客戶端進行了范圍請求,而服務(wù)器成功執(zhí)行了這部分的GET請求。

          4、301 Moved Permanently 永久性重定向。該狀態(tài)碼表示請求的資源已被分配了新的URL,以后應(yīng)使用資源現(xiàn)在所指的URL。

          5、302 Found 臨時性重定向。該狀態(tài)碼表示請求的資源已被分配了新的URL ,希望用戶(本次)能使用新的URL訪問。

          6、303 See Other 該狀態(tài)碼表示由于請求對應(yīng)的資源存在著另一個URL,應(yīng)使用GET方法定向獲取請求的資源。

          7、304 Not Modified 該狀態(tài)碼表示客戶端發(fā)送附帶條件的請求時,服務(wù)端允許請求訪問資源。

          8、307 Temporary Redirect 臨時重定向。不會從POST變成GET。

          9、400 Bad Request 表示請求報文中存在語法錯誤。

          10、401 Unauthorized 表示發(fā)送的請求需要有通過HTTP認證(BASIC、DIGEST認證)的認證信息。

          11、403 Forbidden 表示對請求資源的訪問被服務(wù)器拒絕了。

          12、404 Not Found 服務(wù)器上沒有請求的資源。

          13、500 Internal Server Error 表明服務(wù)器端在執(zhí)行請求時發(fā)生了錯誤。

          14、503 Service Unavailable 表明服務(wù)器暫時維護等,無法處理請求。

          0X02 請求方法

          HTTP/1.1協(xié)議中共定義了八種方法(有時也叫"動作"),來表明Request-URL指定的資源不同的操作方式

          1、OPTIONS:詢問支持得方法

          用來查詢針對請求URI指定的資源支持的方法

          2、HEAD

          請求獲取由Request-URI 所標(biāo)識的資源的響應(yīng)消息報頭,不返回報文主體部分。用于確認URI的有效性及資源更新的日期時間等

          3、GET

          向特定的資源發(fā)出請求。發(fā)送一個請求來取得服務(wù)器上的某一資源。資源通過一組HTTP頭和呈現(xiàn)數(shù)據(jù)(如HTML文本,或者圖片或者視頻等)返回給客戶端。GET請求中,永遠不會包含呈現(xiàn)數(shù)據(jù)。

          4、POST

          傳輸實體主體,向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。

          5、PUT

          用來傳輸文件,像FTP協(xié)議的文件上傳一樣,要求在請求報文的主體中包含文件內(nèi)容,

          然后保存到請求URI指定的位置

          6、DELETE

          請求服務(wù)器刪除Request-URL所標(biāo)識的資源

          7、TRACE

          請求服務(wù)器回送收到的請求信息,用于測試和診斷。讓W(xué)eb服務(wù)器端將之前的請求通信環(huán)回給客戶端的方法

          8、CONNECT

          HTTP/1.1協(xié)議中預(yù)留給能夠?qū)⑦B接改為管道方式的代理服務(wù)器。要求在代理服務(wù)器通信時建立隧道,實現(xiàn)用隧道協(xié)議進行TCP通信。主要使用SSL和TLS協(xié)議把數(shù)據(jù)進行加密傳輸

          spose.PDF for .NET是一種高級PDF處理和解析API,用于在跨平臺應(yīng)用程序中執(zhí)行文檔管理和操作任務(wù)。API可以輕松用于生成,修改,轉(zhuǎn)換,渲染,保護和打印PDF文檔,而無需使用Adobe Acrobat。此外,還提供PDF壓縮選項,表格創(chuàng)建和操作,圖形和圖像功能,廣泛的超鏈接功能,印章和水印任務(wù),擴展的安全控制和自定義字體處理。

          HTML到PDF的轉(zhuǎn)換在將不同文件格式相互轉(zhuǎn)換之間具有其自身的意義,可以使用其他可用的應(yīng)用程序,工具和在線服務(wù)將HTML轉(zhuǎn)換為PDF。同樣,我們也可以使用編程的方式,將HTML轉(zhuǎn)換為PDF。

          在Aspose.PDF for .Net中,提供了免費的HTML到PDF的基本轉(zhuǎn)換,而且還允許指定各種選項來實現(xiàn)所需的功能,比如將網(wǎng)頁轉(zhuǎn)換為PDF、使用SVG數(shù)據(jù)渲染HTML等等。接下來我們一起通過示例解讀的方式學(xué)習(xí)如何實現(xiàn)這些功能。


          將HTML轉(zhuǎn)換到PDF

          只需使用幾行代碼和資源加載回調(diào)就可以以非?;镜姆绞綄TML轉(zhuǎn)換為PDF,以下是使您達到目的的代碼段:

          // The path to the documents directory.
          string dataDir=RunExamples.GetDataDir_AsposePdf_DocumentConversion();
          HtmlLoadOptions options=new HtmlLoadOptions();
          options.CustomLoaderOfExternalResources=new LoadOptions.ResourceLoadingStrategy(SamePictureLoader);
          Document pdfDocument=new Document(dataDir + "HTMLToPDF.html", options);
          pdfDocument.Save("HTMLToPDF_out.pdf");
          private static LoadOptions.ResourceLoadingResult SamePictureLoader(string resourceURI)
          {
           string dataDir=RunExamples.GetDataDir_AsposePdf_DocumentConversion();
           byte[] resultBytes=File.ReadAllBytes(dataDir + "aspose-logo.jpg");
           LoadOptions.ResourceLoadingResult result=new LoadOptions.ResourceLoadingResult(resultBytes);
           return result;
          }
          

          將網(wǎng)頁轉(zhuǎn)換為PDF

          通常需要將網(wǎng)頁轉(zhuǎn)換為PDF,并且如果手動執(zhí)行此操作,則需要執(zhí)行多個步驟。API提供的功能可以使用下面顯示的代碼執(zhí)行。需要注意的是,以下代碼段涵蓋了Web頁面到PDF轉(zhuǎn)換操作的兩個主要和基本方面:

          • 下載網(wǎng)頁正在使用的資源,例如 CSS、圖片
          • 提供憑據(jù)以防訪問頁面
          //文檔目錄的路徑。
          string dataDir=RunExamples.GetDataDir_AsposePdf_DocumentConversion();
          //創(chuàng)建對該URL的請求。
          WebRequest request=WebRequest.Create("https:// En.wikipedia.org/wiki/Main_Page");
          //如果服務(wù)器需要,請設(shè)置憑據(jù)。
          request.Credentials=CredentialCache.DefaultCredentials;
          //在請求超時之前以毫秒為單位超時
          // Request.Timeout=100;
          //獲取響應(yīng)。
          HttpWebResponse response=(HttpWebResponse)request.GetResponse();
          //獲取包含服務(wù)器返回內(nèi)容的流。
          Stream dataStream=response.GetResponseStream();
          //使用StreamReader打開流以方便訪問。
          StreamReader reader=new StreamReader(dataStream);
          //閱讀內(nèi)容。
          string responseFromServer=reader.ReadToEnd();
          reader.Close();
          dataStream.Close();
          response.Close();
          MemoryStream stream=new MemoryStream(System.Text.Encoding.UTF8.GetBytes(responseFromServer));
          HtmlLoadOptions options=new HtmlLoadOptions("https:// En.wikipedia.org/wiki/");
          //加載HTML文件
          Document pdfDocument=new Document(stream, options);
          options.PageInfo.IsLandscape=true;
          //將輸出另存為PDF格式
          pdfDocument.Save(dataDir + "WebPageToPDF_out.pdf");
          

          使用SVG數(shù)據(jù)渲染HTML

          以下代碼段顯示了如何將帶有SVG圖形標(biāo)簽的HTML文件轉(zhuǎn)換為Tagged PDF Document:

          //文檔目錄的路徑
          string dataDir=RunExamples.GetDataDir_AsposePdf_DocumentConversion();
          //設(shè)置輸入文件路徑
          string inFile=dataDir + "HTMLSVG.html";
          //設(shè)置輸出文件路徑
          string outFile=dataDir + "RenderHTMLwithSVGData.pdf";
          //初始化HtmlLoadOptions
          HtmlLoadOptions options=new HtmlLoadOptions(Path.GetDirectoryName(inFile));
          //初始化Document對象
          Document pdfDocument=new Document(inFile, options);
          //保存
          pdfDocument.Save(outFile);
          

          點擊下方“了解更多”免費下載最新版Aspose.PDF for .NET

          ↓↓↓


          主站蜘蛛池模板: 国产探花在线精品一区二区| 人体内射精一区二区三区| 鲁大师成人一区二区三区| 国产无线乱码一区二三区 | 国产福利电影一区二区三区,日韩伦理电影在线福 | 国产精品无码一区二区三区在| 在线精品动漫一区二区无广告| 国产一区二区三区不卡在线观看 | 无码人妻精品一区二区三 | 亚洲一区动漫卡通在线播放| 三上悠亚日韩精品一区在线| 视频精品一区二区三区| 波多野结衣AV一区二区三区中文 | 一区三区三区不卡| 国产成人精品视频一区| 亚洲欧美日韩一区二区三区| 麻豆文化传媒精品一区二区| 无码人妻视频一区二区三区| 人妻少妇一区二区三区| 三上悠亚亚洲一区高清| 91福利国产在线观看一区二区| 风流老熟女一区二区三区| 福利一区二区在线| 欧洲精品一区二区三区在线观看 | 中文字幕乱码一区二区免费| 精品一区二区三区免费观看| 一区二区三区四区电影视频在线观看| 国产精品视频免费一区二区三区| 欧洲亚洲综合一区二区三区| 日韩美一区二区三区| 日韩在线视频一区二区三区 | 亚洲韩国精品无码一区二区三区| 狠狠做深爱婷婷综合一区| 久久精品无码一区二区日韩AV| 国产99精品一区二区三区免费| 中文字幕一区在线| 中文字幕视频一区| 精品人伦一区二区三区潘金莲| 蜜桃视频一区二区三区在线观看| 中文无码一区二区不卡αv| 成人精品一区久久久久|