工作代码片段-QtSOAP
初始化QtSoap:
soap = new SOAPService(this);
soap->setNamespace("http://tempuri.org/");
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); //CB_RTU/GetAll
soapAction = new QtSoapSimpleType(QtSoapQName(ACTION), actionstr);//"http://tempuri.org/CB_RTU/GetAll"
soapAction->setStringValue(MUST_UNDERSTAND);
QString tostr = m_to;
tostr.append(to);
soapTo = new QtSoapSimpleType(QtSoapQName(TO), tostr);//"http://topia:5566/Rtu"
soapTo->setStringValue(MUST_UNDERSTAND);
if(request == NULL){
request = new QtSoapMessage();
}
request->addHeaderItem(soapAction);
request->addHeaderItem(soapTo);
request->setMethod(method,soapNamespace);
//request->addBodyItem(&QtSoapSimpleType(QtSoapQName("asdfasdf")));
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 &)));
摘自 缘起
补充:软件开发 , 其他 ,