初始化QtSoap:
soap = new SOAPService(this);
soap->setNamespace("http://xxxxxxx/");
soap->setHost("192.168.0.160", 5577);
soap->setDbName("0532");
messageStr = tr("SOAP初始化成功!\n服务器:192.168.0.70\n端口:5566\ndbName:0532\n");
messager->addMessage(messageStr);
QString actionstr = m_action;
actionstr.append(method);
soapAction = new QtSoapSimpleType(QtSoapQName(ACTION), actionstr);
soapAction->setStringValue(MUST_UNDERSTAND);
QString tostr = m_to;
tostr.append(to);
soapTo = new QtSoapSimpleType(QtSoapQName(TO), tostr);
soapTo->setStringValue(MUST_UNDERSTAND);
if(request == NULL){
request = new QtSoapMessage();
}
request->addHeaderItem(soapAction);
request->addHeaderItem(soapTo);
request->setMethod(method,soapNamespace);
request->addMethodArgument(DBNAME, "", dbName);
SoapArgument argument;
argument.setEntity(entity);
do{
if(queue == NULL || queue->isEmpty())
{
break;
}
for(QQueue<QPair<QString, QString> >::const_iterator iterator = queue->begin(); iterator != queue->end(); iterator++)
{
argument.pushArgument(iterator->first, iterator->second);
}
}while(0);
request->addMethodArgument(argument.entity, "", argument.argumentString);
std::cout << request->toXmlString(2).toStdString() << std::endl;
http.setHost(host, port);
QString ato = to;
http.submitRequest(*request, ato.insert(0,"/"));
delete soapAction;
delete soapTo;
request = NULL;
绑定信号:
connect(&http, SIGNAL(responseReady(const QtSoapMessage &)),
this, SLOT(getResponse(const QtSoapMessage &)));