亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Android開發(fā)中Web Service網(wǎng)絡(luò)編程研究

        2012-04-29 05:47:22巫志勇
        電腦知識與技術(shù) 2012年20期

        巫志勇

        摘要:該文介紹了在Android開發(fā)中Web Service功能的實現(xiàn)。并設(shè)計了一個國內(nèi)手機號碼歸屬地查詢的程序,研究通過Web Ser? vice遠(yuǎn)程調(diào)用來獲取數(shù)據(jù)的方式。

        關(guān)鍵詞:Android;Web Service;ksoap2

        中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)20-4904-03

        In the Development of Android Web Service Network Programming Research

        WU Zhi-yong

        (Guangdong Female Polytechnic College, Guangzhou 511450, China)

        Abstract: This paper describes the implement of Web Services functionality on Android platform. And design a program for inquiries to phone numbers attribution, to show the way to remote calls Web Service function.

        Key words: Android; Web Service; ksoap2

        Web Service是一種面向服務(wù)架構(gòu)(Service-oriented architecture,SOA)的技術(shù),目的是實現(xiàn)不同平臺的應(yīng)用服務(wù)之間的相互調(diào)用。Android作為一個市場占有率第一的移動操作系統(tǒng),其網(wǎng)絡(luò)功能是最重要的特性之一。在Android開發(fā)中通過Web Service可以方便地實現(xiàn)不同平臺之間的方法調(diào)用,從網(wǎng)上獲取數(shù)據(jù)信息和實現(xiàn)功能擴展。Web Service通過標(biāo)準(zhǔn)的Web協(xié)議提供服務(wù)。

        通過Web Service實現(xiàn)遠(yuǎn)程方法調(diào)用,獲取數(shù)據(jù)信息,最關(guān)鍵的問題是數(shù)據(jù)訪問和傳輸?shù)膮f(xié)議規(guī)范。

        SOAP協(xié)議(Simple Object Access Protocal,簡單對象訪問協(xié)議),它是一個分布式網(wǎng)絡(luò)環(huán)境下用于信息交換的通訊協(xié)議。在此協(xié)議下,應(yīng)用程序和軟件組件可以通過標(biāo)準(zhǔn)的Web協(xié)議進行通訊。SOAP使用基于XML的可擴展消息格式,需同時綁定一個傳輸用協(xié)議。這個協(xié)議通常是HTTP或HTTPS,但也可以使用SMTP或XMPP。

        WSDL是一個XML格式文檔,用以描述服務(wù)端口訪問方式和使用協(xié)議的細(xì)節(jié)。通常用來輔助生成服務(wù)器和客戶端代碼及配置信息。

        UDDI是用來發(fā)布和搜索WEB服務(wù)的協(xié)議,應(yīng)用程序可藉由此協(xié)議在設(shè)計或運行時找到目標(biāo)WEB服務(wù)。

        Java開發(fā)中的Web Service有很多種實現(xiàn)方式,如XML-RPC、XFile、Axis等等,可是這些庫并不適合資源有限的Android手機客戶端。在Java ME版本中,廣泛使用的是KSOAP。雖然Android并不使用Java ME,但是KSOAP也有Android下的可用版本ksoap2-Android。

        2.1 ksoap2-Android

        kSOAP是Enhydra.org的一個開源作品,是EnhydraME項目的一部分。ksoap2-Android是ksoap2在Android下的一個移植版本,利用它可以非常方便地訪問Web Service。ksoap2的常用接口有:

        org.ksoap2. SoapObject

        org.ksoap2. SoapEnvelope

        org.ksoap2. SoapSerializationEnvelope

        org.ksoap2.transport. HttpTransport

        SoapObject用于創(chuàng)建SOAP對象,實現(xiàn)SOAP調(diào)用;

        SoapEnvelope實現(xiàn)了SOAP標(biāo)準(zhǔn)中的SOAP Envelope,封裝了head對象和body對象。

        SoapSerializationEnvelope是ksoap2中對SoapEnvelope的擴展,支持SOAP序列化(Serialization)格式規(guī)范,可以對簡單對象自動進行序列化(Simple object serialization)。

        HttpTransport用于進行Internet訪問/請求,獲取服務(wù)器SOAP。

        2.2 ksoap2-Android的編譯配置

        圖1

        <TextView

        android:layout_width="fill_parent"

        android:layout_height="wrap_content" android:text="@string/phonenumber" /><EditText

        android:id="@+id/EditTextPhoneNumber" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="phone" >

        <requestFocus /></EditText><Button

        android:id="@+id/btnCheck"

        android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/btnCheck" />

        3.2查詢的代碼

        當(dāng)輸入手機號碼,點擊查詢按鈕時,訪問Web Service,遠(yuǎn)程調(diào)用getMobileCodeInfo方法來獲得查詢結(jié)果。訪問Web Service的步驟如下:

        1)實例化SoapObject對象,指定webService的命名空間和調(diào)用的方法名稱。

        String serviceNameSpace = "http://WebXml.com.cn/";

        String methodName = "getMobileCodeInfo";

        SoapObject request = new SoapObject(serviceNameSpace,methodName);

        2)設(shè)置調(diào)用方法的參數(shù)。根據(jù)服務(wù)提供方描述的參數(shù)要求,需要兩個參數(shù)。第一個為mobileCode,字符串類型,表示手機號碼,第二個為userID為商業(yè)用戶ID,免費用戶為空字符串。

        request.addProperty("mobileCode", strPhoneNumber);

        request.addProperty("userID", "");

        3)通過實例化Envelope對象,設(shè)置SOAP請求信息,并注冊Envelope對象。對應(yīng)于不同的SOAP規(guī)范,需要使用不同的常量作為參數(shù)。常量SoapEnvelope.VER10:對應(yīng)于SOAP 1.0規(guī)范;常量SoapEnvelope.VER11:對應(yīng)于SOAP 1.1規(guī)范;常量SoapEnvelope. VER12:對應(yīng)于SOAP 1.2規(guī)范。

        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

        envelope.bodyOut = request;

        (new MarshalBase64()).register(envelope);

        4)實例化傳輸對象,參數(shù)為傳遞SOAP數(shù)據(jù)的目標(biāo)地址,即WSDL文檔的URL。HttpTransportSE是一個強大的Http傳輸類,可以完成Http傳輸過程。它封裝了網(wǎng)絡(luò)請求的一切,可以完全不用考慮序列化消息。通過把它的debug屬性設(shè)置為true來啟用調(diào)試信息。

        String serviceURL = "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx";

        HttpTransportSE transport = new HttpTransportSE(serviceURL);

        transport.debug = true;

        5)獲取返回結(jié)果,并進行解析。

        返回數(shù)據(jù)為字符串(手機號碼:省份城市手機卡類型)。

        if(envelope.getResponse()!=null){

        return (envelope.bodyIn.toString());

        }

        在Android開發(fā)中使用ksoap2-Android可以很方便地實現(xiàn)Web Service功能,通過Web Service遠(yuǎn)程調(diào)用來獲取數(shù)據(jù)。但是在開發(fā)中發(fā)現(xiàn),直接訪問Web Service來獲取數(shù)據(jù),會由于網(wǎng)絡(luò)的延時而造成界面響應(yīng)的短暫停頓,應(yīng)該研究更好的方法,如通過后臺異步數(shù)據(jù)傳輸來解決。

        中文在线√天堂| 欧美黑人群一交| 国产av国片精品| 亚洲熟妇av日韩熟妇av| 亚洲av少妇一区二区在线观看| 午夜精品久久久久久久| 国产精品久久久久久无码| 国产艳妇av在线出轨| 亚洲国产天堂av成人在线播放| 一本色道无码不卡在线观看| 99久久久精品免费观看国产| 亚洲—本道中文字幕久久66| 国产亚洲av一线观看| 精品无码人妻夜人多侵犯18| 久久99精品国产麻豆| 国产精品系列亚洲第一| 少妇熟女天堂网av天堂| 亚洲人成国产精品无码果冻| 日韩一线无码av毛片免费| 国产美女三级视频网站| 日韩av毛片在线观看 | 99精品国产一区二区三区a片| 国产精品亚洲A∨天堂| 亚洲综合偷拍一区二区| 久久国产成人精品av| 人妻无码久久一区二区三区免费| 鲁丝一区鲁丝二区鲁丝三区| 手机免费高清在线观看av| 国产免费拔擦拔擦8x高清在线人| 欧美理论在线| 粗大挺进孕妇人妻在线| 综合偷自拍亚洲乱中文字幕 | 亚洲精品国偷拍自产在线| 中国猛少妇色xxxxx| 爱v天堂在线观看| 麻神在线观看免费观看| av一区二区三区综合网站| 国产va免费精品观看精品| 亚洲成在人线av| 亚洲性码不卡视频在线| 久久久精品人妻一区二区三区四区|