自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SOAP HTTP和RPC SOAP的案例分析

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
下面我們對(duì)SOAP HTTP的內(nèi)容以及RPC SOAP的相關(guān)內(nèi)容進(jìn)行一下具體的分析和講解。具體內(nèi)容請(qǐng)大家詳細(xì)看一下文章的描述吧。

對(duì)于SOAP協(xié)議的內(nèi)容,這次我們主要針對(duì)兩方面講解,一是SOAP HTTP的應(yīng)用舉例,另一方面是對(duì)RPC SOAP的相關(guān)內(nèi)容的解析。下面我們就先來看看具體的SOAP HTTP舉例。

使用POST的SOAP HTTP

  1. POST /StockQuote HTTP/1.1  
  2. Content-Type: text/xml; charset="utf-8" 
  3. Content-Length: nnnn  
  4. SOAPAction: "http://electrocommerce.org/abc#MyMessage"  
  5. <SOAP-ENV:Envelope... 
  6. HTTP/1.1 200 OK  
  7. Content-Type: text/xml; charset="utf-8" 
  8. Content-Length: nnnn  
  9. <SOAP-ENV:Envelope... 

使用擴(kuò)展框架的SOAP HTTP

  1. M-POST /StockQuote HTTP/1.1  
  2. Man: "http://schemas.xmlsoap.org/soap/envelope/"; ns=NNNN 
  3. Content-Type: text/xml; charset="utf-8" 
  4. Content-Length: nnnn  
  5. NNNN-SOAPAction: "http://electrocommerce.org/abc#MyMessage"  
  6. <SOAP-ENV:Envelope... 
  7. HTTP/1.1 200 OK  
  8.  
  9. Ext:  
  10. Content-Type: text/xml; charset="utf-8" 
  11. Content-Length: nnnn  
  12. <SOAP-ENV:Envelope... 

以上就是SOAP HTTP的應(yīng)用案例,我們就介紹到這里,下面我們來看看在RPC中使用SOAP的相關(guān)內(nèi)容.

設(shè)計(jì)SOAP的目的之一就是利用XML的擴(kuò)展性和靈活性來封裝和交換RPC調(diào)用.這一節(jié)定義了遠(yuǎn)程過程調(diào)用和應(yīng)答的統(tǒng)一表示形式.雖然可以預(yù)計(jì)到這種表示形式最可能被用于與之前定義的編碼方式相結(jié)合,但也可能有其它的表示形式.SOAP的encodingstyle屬性可以用來表明方法調(diào)用和應(yīng)答都使用這一節(jié)所指定的表示方式.在RPC中使用SOAP和SOAP協(xié)議綁定是緊密相關(guān)的.在使用HTTP作為綁定協(xié)議時(shí),一個(gè)RPC調(diào)用自然地映射到一個(gè)HTTP請(qǐng)求,RPC應(yīng)答同樣映射到HTTP應(yīng)答.但是,在RPC中使用SOAP并不限于綁定HTTP協(xié)議.

要進(jìn)行方法調(diào)用,以下的信息是必需的:

目標(biāo)對(duì)象的URI

方法名

方法signature(可選)

方法的參數(shù)

頭數(shù)據(jù)(可選)

SOAP依靠協(xié)議綁定提供傳送URI的機(jī)制.例如,對(duì)HTTP來說,請(qǐng)求的URI指出了調(diào)用的來源 .除了必須是一個(gè)合法的URI之外,SOAP對(duì)一個(gè)地址的格式?jīng)]有任何限制.

RPC和SOAP體

RPC方法調(diào)用和應(yīng)答都包含在SOAP Body元素中,它們使用如下的表示形式:

一個(gè)方法調(diào)用用一個(gè)結(jié)構(gòu)表示

一個(gè)方法調(diào)用被看作一個(gè)單個(gè)的結(jié)構(gòu),每個(gè)[in]和[in/out]參數(shù)有一個(gè)accessor.結(jié)構(gòu)的名和類型與方法相同.每個(gè)[in]和[in/out]參數(shù)都被看作一個(gè)accessor,這個(gè)accessor的名和類型與參數(shù)的名和類型相對(duì)應(yīng).它們的出現(xiàn)順序和方法中定義的參數(shù)順序相同.

一個(gè)方法應(yīng)答用一個(gè)結(jié)構(gòu)表示.

一個(gè)方法應(yīng)答被看作一個(gè)單個(gè)的結(jié)構(gòu),返回值和每個(gè)[in]和[in/out]參數(shù)有一個(gè)accessor.***個(gè)accessor是返回值,之后是參數(shù)accessor,參數(shù)accessor的出現(xiàn)順序和方法中定義的參數(shù)順序相同.每個(gè)參數(shù)accessor的名稱和類型與參數(shù)的名稱和類型相對(duì)應(yīng).返回值accessor的名稱并不重要.同樣,結(jié)構(gòu)的名稱也不重要,不過,通常在方法名稱的后面加上字符串"Response"作為結(jié)構(gòu)的名稱.

方法錯(cuò)誤使用SOAP Fault元素表示.如果綁定的協(xié)議有額外的規(guī)則表示錯(cuò)誤,則這些規(guī)則也必須要遵從.正如上面所述,方法調(diào)用和應(yīng)答結(jié)構(gòu)可以按照第5節(jié)中規(guī)則編碼,或者用encodingstyle屬性指定編碼方式.應(yīng)用程序可以處理缺少參數(shù)的請(qǐng)求,但是可能返回一個(gè)錯(cuò)誤.因?yàn)榉祷亟Y(jié)果表示調(diào)用成功,錯(cuò)誤表示調(diào)用失敗,所以,在方法應(yīng)答中同時(shí)包含返回結(jié)果和錯(cuò)誤是錯(cuò)誤的.

RPC和SOAP頭

在RPC編碼中,可能會(huì)有與方法請(qǐng)求有關(guān)但不是正規(guī)的方法signature的附加信息.如果這樣,它必須作為SOAP頭元素的子元素.使用這種頭元素的一個(gè)例子是在消息中傳遞事務(wù)ID.由于事務(wù)ID不是方法signature的一部分,通常由底層的組件而不是應(yīng)用程序代碼控制,所以沒有一種直接的方法在調(diào)用中傳遞這個(gè)必要的信息.通過在頭中添加一個(gè)給定名字的條目,接收方的事務(wù)管理器就可以析取這個(gè)事務(wù)ID,而且不影響遠(yuǎn)程過程調(diào)用的代碼.

到這里我們就將SOAP HTTP和RPC中使用SOAP的相關(guān)內(nèi)容介紹完了,希望對(duì)大家有所幫助。

責(zé)任編輯:佟健 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2009-12-07 15:56:46

PHP內(nèi)置SOAP

2025-04-17 01:11:00

2010-07-14 17:16:35

SOAP協(xié)議

2010-07-14 17:26:36

SOAP協(xié)議

2010-09-02 16:39:30

SOAP協(xié)議

2010-07-14 17:29:36

SOAP協(xié)議

2011-12-12 15:51:20

RESTSOAP

2010-09-02 16:34:13

SOAP協(xié)議

2010-09-10 14:48:05

2010-09-10 15:18:28

SOAP協(xié)議

2010-09-02 16:46:52

SOAP協(xié)議

2017-02-09 09:25:43

2009-07-29 17:45:09

ibmdwWebREST

2009-07-31 16:26:28

ibmdwREST

2022-08-16 07:32:03

RestfulSOAPRPC

2010-09-10 15:26:05

SOAP封裝

2011-04-07 10:15:00

AjaxWeb

2018-12-29 14:12:33

FTPRMIXML-RPC

2009-11-04 14:44:44

AOP.NET SOA

2010-09-10 15:33:26

SOAP協(xié)議應(yīng)答編碼
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)