欢迎来到天天文库
浏览记录
ID:30777936
大小:519.80 KB
页数:10页
时间:2019-01-03
《delphi开发webservice经验总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、4.4.1Webservice接口文件的导入>找到接口定义字符串http://del1/QAMonitorScrvice/UserScrvice.asmx打开CB6,选择菜单File—New—Other,选择Webservices标签,选择WSDLimporter,弹出如下界面:>在LocationofWSDLFileorURL:输入框内键入如下内容http://de11/QAMonitorService/UserService.asmx?WSDL,点击Next.>在弹出的窗体上直接点击Finish结朿导入。4.4.2结果集编码的修改>在
2、导入文件的.h文件内,找到如下接口定义区:—interfaceINTERFACE_UUID(〃{D39DB2B8-0F06-4033-57F6-171B17D23873}“)UserSystemSoap:publicTinvokable>找到Get**Resault定义,如:virtualGetUserByAccountNameResult*GetUsorByAccountName(constAnsiStringaccountName)=0;>将返回类型GetUserByAccountNameResult*改为WideString类型vi
3、rtualWideStringGetUserByAccountName(constAnsiStringaccountName)二0;4.4.3提交数据中含有中文乱码的修改>在导入文件的.cpp文件那,找到如下位置if(useWSDL)!rio->WSDLLocation=addr;rio->Service=defSvc;rio->Port二defPrt;}>改为如下内容,新添加两行蓝色字体部分,if(useWSDL)!rio->WSDLLocation=addr;rio~>Service=defSvc;rio->Port=defPrt;r
4、io->Converter->0ptions«soUTF8InHeader;rio->HTTPWebNode->UseUTF8InHeader=true;}4.4.4ClientDataSet的导入>添加一个数据模块,在数据模块上添加如下控件:XMLTransformProvider>ClientDataSet、DataSource>设置ClientDataSet.ProviderName=XMLTransformProviderDataSource.DataSet=ClientDataSet>将返回的结果集保存为xml文件(1)。>生成
5、xml文件的解释文件.xtr文件⑵。>设置TXMLTransfotin*XMLTransfonn=XMLTransformProvider->TransfooiRead;XMLTransform->SourceXml=xml文件;XMLTransform->TransformationFile=xtr文件;XMLTransform1->TransformXML(xml,"”);ClientDataSetl->XMLData=XMLTransform1->Resu11String;ClientDataSet->Active=true;(1)
6、将返回的结果集保存为xml文件。用本地类classWebServiceBase的公有方法virtualvoidfastcallSavcXML(WidcStringxml,StringFi1eName);实现如下:void_fastcallclassWebServiceBase::SaveXML(WideStringxml,StringFileName){StringstrXml=UTF8Encode(xml);TFileStream*pF订e二newTFileStream(FileName,fmCreate);char*tmpStr=st
7、rXml.c_str();pFile_>Write((void*)tmpStr,strXml.Length());deletepFile;}调用如下:SaveXML(xml,"c:\project.xml");参数说明:WideStringxml为需要保存的xmlWebservice返回内容。StringFileName为xml要保存的位置。⑵生成xtr文件打开C++Builder,选择菜单Tools—XMLMappero在弹出的窗口内选择File—Open,打开保存的XML文件,选择含有DataSet的节点(有黄色边框),如下图:点击
8、鼠标右键,选择SelectAl1ChildrenSelectedNodeb!^result日•⑥x$:schema日“⑥xs:element[x]日•⑥x$:complexType曰•⑥x$:
此文档下载收益归作者所有