Android_WebServices_介紹

來源:互聯網
上載者:User

Android_WebServices_介紹
 
1.WebService的介紹

WebService為基於Web的服務,它使用Web(HTTP)方式,接收和響應請求,從而實現遠程調用.
(1).從WebService的工作模式上理解的話,它跟普通的Web程式(比如ASP、JSP等)並沒有本質的區別,都是基於HTTP傳輸協議的程式;

(2).WebService所使用的資料是基於XML格式的和SOAP協議。其中SOAP即簡易物件存取通訊協定 (SOAP)(Simple Object Access Protocal)協議是一種基於XML編碼規範的文本協議。

 

2.WebService三要素
 
WebService三要素:SOAP、WSDL(WebServices Description Language)、UDDI(Universal Description Discovery and Integration)
(1).SOAP
1).SOAP介紹
SOAP訊息基本上是從發送端到接收端的單向傳輸,但它們常常結合起來執行類似於請求 / 應答的模式。所有的 SOAP訊息都使用 XML 編碼。一條 SOAP訊息就是一個包含有一個必需的 SOAP 的封裝包,一個可選的 SOAP 標頭和一個必需的 SOAP 體塊的 XML 文檔。把 SOAP 綁定到 HTTP 提供了同時利用 SOAP 的樣式和分散的靈活性的特點以及 HTTP 的豐富的特徵庫的優點。在HTTP上傳送 SOAP 並不是說 SOAP 會覆蓋現有的 HTTP 語義,而是 HTTP 上的 SOAP 語義會自然的映射到 HTTP 語義。在使用 HTTP 作為協議綁定的場合中, RPC 請求映射到 HTTP 要求上,而 RPC 應答映射到 HTTP 應答。然而,在 RPC 上使用 SOAP 並不僅限於 HTTP 協議綁定。SOAP也可以綁定到TCP和UDP協議上。
2).SOAP訊息格式
                
3).文法規則
一條 SOAP 訊息就是一個普通的 XML 文檔,包含下列元素:
必需的 Envelope 元素,可把此 XML 文檔標識為一條 SOAP 訊息
可選的 Header 元素,包含頭部資訊
必需的 Body 元素,包含所有的調用和響應資訊
可選的 Fault 元素,提供有關在處理此訊息所發生錯誤的資訊
(2).WSDL
Web Service描述語言WSDL 就是用機器能閱讀的方式提供的一個正式描述文檔而基於XML的語言,用於描述Web Service及其函數、參數和傳回值。因為是基於XML的,所以WSDL既是機器可閱讀的,又是人可閱讀的。
(3).UDDI

UDDI 是一種目錄服務,企業可以使用它對 Web services 進行註冊和搜尋。UDDI,英文為 Universal Description, Discovery and Integration,可譯為“通用描述、發現與整合服務”

 

 
 
 
 
3.在Android上的應用

在Android平台叫用WebService需要依賴於第三方類庫ksoap2,它是一個SOAP Web service用戶端開發包。KSoap2 Android 是Android平台上一個高效、輕量級的SOAP開發包,等同於Android平台上的KSoap2的移植版本。目前最新版本ksoap2-android-assembly-3.3.0-jar-with-dependencies.jar,是:http://code.google.com/p/ksoap2-android/

 

4.簡單調用執行個體

 

public void getRemoteInfo(String phoneSec) {String nameSpace = http://WebXml.com.cn/;String methodName = getMobileCodeInfo;String endPoint = http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx;String soapAction = http://WebXml.com.cn/getMobileCodeInfo;// 指定WebService的命名空間和調用的方法名SoapObject rpc = new SoapObject(nameSpace, methodName);rpc.addProperty(mobileCode, phoneSec);rpc.addProperty(userId, );SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10);envelope.bodyOut = rpc;envelope.dotNet = true;HttpTransportSE transport = new HttpTransportSE(endPoint);try {// 調用WebServicetransport.call(soapAction, envelope);// 擷取返回的資料SoapObject object = (SoapObject) envelope.bodyIn;// 擷取返回的結果final String result = object.getProperty(0).toString();toast(result);} catch (Exception e) {e.printStackTrace();toast(e.getMessage());}}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.