使用 GSoap 从 Qt 4.5 调用 Web 服务
使用 GSoap 从 Qt 4.5 调用 Web 服务。
引言
我一直在寻找一个可以直接使用的、包含 Qt 和 GSoap 的示例,但没有找到。所以我想自己创建一个。这不是一个针对想要使用 Qt 的初学者的教程,也不会介绍 GSoap 的任何内容。它是为那些对 Qt 和 Web 服务非常了解,并希望使用 GSoap 的人准备的。
概述
我使用的环境是:XUbuntu 8.10,QT 4.5,GSoap 1.2.9l。
我认为这里没有什么需要过多解释的。代码本身就非常清晰易懂。我想我们需要特别注意 .pro 文件和需要包含的文件。
Qt 提供了 QtSoap 来实现类似 GSoap 的功能。但是,考虑到 很多人都在使用它,而且 GSoap 已经存在一段时间并且相当成熟,我决定继续使用它。
.pro 文件
我注意到关于 .pro 文件应该如何编写有很多讨论。这里是它的内容:
# -------------------------------------------------
# Project created by QtCreator 2009-05-04T22:46:55
# -------------------------------------------------
TARGET = qtQuote
TEMPLATE = app
QT += xml\
xmlpatterns
INCLUDEPATH += /usr/include/gsoap
LIBS += -lgsoap++
SOURCES += main.cpp \
mainwindow.cpp \
soapC.cpp \
soapStockQuoteSoapProxy.cpp
HEADERS += mainwindow.h \
soapStockQuoteSoapProxy.h \
soapStub.h \
soapH.h
FORMS += mainwindow.ui
应用程序截图
该窗口将接收股票代码,并将 XML 吐到下面的文本区域。
非常基础,但我想展示的是一个将 Qt 和 GSoap 结合在一起的框架。使用 QXmlQuery/QDom/SAX,我们可以从 XML 响应中获取所需的数据点。
关注点
有趣的是,即使我使用 Synaptic 安装了 GSoap,我仍然需要本地放置 SoapCpp2.h 和 error2.h 才能运行该应用程序。此外,我们还需要查看它如何在 OS X 和 Windows 上构建。