Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
How to use gSOAP with Qt for Web Service Client: Difference between revisions
No edit summary |
AutoSpider (talk | contribs) (Add "cleanup" tag) |
||
Line 1: | Line 1: | ||
{{Cleanup | reason=Auto-imported from ExpressionEngine.}} | |||
[[Category:Developing_with_Qt]] | [[Category:Developing_with_Qt]] | ||
[[Category:HowTo]] | [[Category:HowTo]] |
Revision as of 16:01, 3 March 2015
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
[toc align_right="yes" depth="3"]
Overview
gSOAP is a portable development toolkit for C and C++ XML Web services and XML data bindings. It supports XML auto-serialization of C/C++ data. Includes WSDL/XSD schema binding tools, stub/skeleton compiler, Web server, SOAP/XML/MIME streaming, XML-RPC. Here is how to use it to build a web service client in Qt.
Preparation
- Download and unzip the "gSOAP package":http://sourceforge.net/projects/gsoap2/.
gSOAP package contains pre-built tools in the
gsoap/bin
directory.
- schema importer
wsdl2h
- stub/skeleton generator.
soap2cpp
You require
.wsdl
and
.xsd
files of the web service to generate a c++ stub.
Modify your project
- First use on a .wsdl file to generate a .h file, then use
wsdl2h
on the generated .h file to generate .h and .cpp files to be included in your Qt project.soap2cpp
- Before using you have to modify the
wsdl2h
file, this file is present intypemap.dat
directory. Add a line in this file defining the namespace of your web service. Give any name togsoap/ws
and copy string from your .wsdl file following the tag.namespace
<definitions targetNamespace=http://something><code>
Add this line to <code>typemap.dat
file:
Anything =”http://something”
- Now run on .wsdl and .xsd files (from command prompt)
wsdl2h
wsdl2h –s -t<path of typemap.dat> –o <name of generated .h file e.g chatpp.h> <path and name of .wsdl file><code>
(note .xsd file should be in same directory as .wsdl file)
* Then use <code>soapcpp2
on generated .h file (we assume that name of generated file is chatapp.h)
soapcpp2 –i chatpp.h
this will generate multiple files
soapstub.h
soapH.h
soapC.cpp
soapchatappProxy.h
soapchatappProxy.cpp
chatapp.nsmap
soapchatappsetvice.h
soapchatappservice.cpp
and an xml file for each method in defined in .wsdl file.
- now add
soapstub.h
soapH.h
soapchatappProxy.h
as headers in to your qt project and then add
soapC.cpp
soapchatppProxy.cpp
as source
- add include path of yor generated file in .pro file of your qt project or simply copy all of generated files to your project directory. Also add path of “libws2_32.a” in your .pro file I my case it is as under
LIBS += C:/NokiaQTSDK/mingw/lib/libws2_32.a
- also add stdsoap2.h and stdsoap2.cpp from gsoap directory as header and source in your project.
- now include chatapp.nsmap and chatappProxy.h in your main.cpp.
- make an object of chatappProxy and use it to communicate with webservice.
above method worked for me while using gsoap with NokiaQtSDk on windows xp.