Symbian學習筆記(21) – 原來還有這個工具wsdl2cpp,訪問webservice也很簡單

來源:互聯網
上載者:User

在論壇裡看到有人問使用wsdl2cpp產生代碼,才知道原來symbian提供了一個協助工具輔助來產生webservice client的代碼,比起我上回折騰的自己參考AddressBook例子做的webservice用戶端要簡單多了,類似於gSOAP的使用。

首先,去forum.nokia.com.cn搜一下WSDL-to-C++_for_S60,這是用於Carbice Vs的工具,不過也可以獨立安裝,用命令列來產生所需要的代碼。下載安裝即可。

第二步,運行它的wsdl2cpp工具,得到一些原始碼,不過它比gSOAP弱智一點點,不能直接給出一個wsdl的URL,所以最好將wsdl下載到本地,給它一個檔案名稱即可:

wsdl2cpp --callback-class PServiceConsumer --include-dir ./work/inc --source-dir ./work/src pservice.wsdl

這樣我們會在目前的目錄下的work/src和work/inc下得到它產生的頭與源檔案,實現的原理仍是用的Symbian內建的Web Service API來做的。將這些代碼弄到工程裡去。

第三步,工程裡新增了代碼,修改mmp,與直接使用這些API一樣,總之,這個工具只是協助我們產生了源碼架構,比較方便罷了。不過額外有一點增加的地方是:

LIBRARY     XmlDataBinding.lib
USERINCLUDE  /epoc32/include/libc
USERINCLUDE  /epoc32/include/xmldatabinding

這裡的xmldatabinding是新的東西,所以之前需要安裝,在安裝wsdl-to-c++工具後,有一個XmlDataBinding.zip在它的目錄下,開啟解到相應的epoc32目錄裡去即可。它包括了lib和一些標頭檔。

並且,在手機跑,應該將XmlDataBinding.sis也安裝一下,從這一點看,似乎比gSOAP要麻煩一點了。

第四步,現在開始動手修改代碼,很簡單了。

private:// DataCHelloWSThreeAppView* iAppView;CPServiceService * iService;CPServiceConsumer * iObserver;

在標頭檔裡增加iService和iObserver就可以了,CPP中有兩步,一是初始化串連,二是遠程調用方法:

//這裡初始化代碼CSenXmlServiceDescription *pServiceDesc = CSenXmlServiceDescription::NewLC(KServiceEndpoint, KNullDesC8()); pServiceDesc->SetFrameworkIdL(KDefaultBasicWebServicesFrameworkID);  iObserver = CPServiceConsumer::NewLC(); iService = CPServiceService::NewLC(*iObserver,*pServiceDesc);_LIT(KStr,"Init service.");LOG(KStr);//這裡遠程調用代碼if(iObserver->iStatus==KSenConnectionStatusReady){RHelloWorld aHello;RHelloWorldResponse aHelloResp;TRAPD(error,aHelloResp=iService->HelloWorldL(aHello));if(error){RDebug::Printf("error %d",error);}TBuf<64> buf;buf.Copy(aHelloResp.iHelloWorldResult);_LIT(KStr,"result is %S");LOG_FORMAT((KStr,buf));}

這樣就好了,當然析構時要刪除這些成員變數。

總結一下,其實我用三種方法來調用web service,都是最簡單的HelloWorld,比較而言,還是gSOAP比較方便。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.