C++ 如何在qtc++;
我正在尝试为web服务创建一个客户端应用程序。在该应用程序中,我需要通过该web服务链接传递一些整数,然后web服务以XML格式提供一些数据。我能够完成ping该web服务,但我不知道如何通过该web服务传递整数值。请给我一些C++中请求响应Web服务的示例代码。响应数据是XML格式的,我想存储在一些文本文件或向量中。我使用打印机打印所需的数据 以下是我为web服务开发的代码:C++ 如何在qtc++;,c++,xml,qt,web-services,response,C++,Xml,Qt,Web Services,Response,我正在尝试为web服务创建一个客户端应用程序。在该应用程序中,我需要通过该web服务链接传递一些整数,然后web服务以XML格式提供一些数据。我能够完成ping该web服务,但我不知道如何通过该web服务传递整数值。请给我一些C++中请求响应Web服务的示例代码。响应数据是XML格式的,我想存储在一些文本文件或向量中。我使用打印机打印所需的数据 以下是我为web服务开发的代码: void Downloader::doDownload() { manager = new QNetworkA
void Downloader::doDownload()
{
manager = new QNetworkAccessManager(this);
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://api.flickr.com/services/soap/")));
exit(0);
}
void Downloader::replyFinished (QNetworkReply *reply)
{
if(reply->error())
{
qDebug() << "ERROR!!!!";
qDebug() << reply->errorString();
}
else
{
qDebug() << reply->header(QNetworkRequest::ContentTypeHeader).toString();
qDebug() << reply->header(QNetworkRequest::LastModifiedHeader).toDateTime().toString();
qDebug() << reply->header(QNetworkRequest::ContentLengthHeader).toULongLong();
qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
qDebug() << reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString();
QFile *file = new QFile("/root/Downloads/QT Web Services/WebServiceResponseData.txt");
if(file->open(QFile::Append))
{
file->write(reply->readAll());
file->flush();
file->close();
}
delete file;
}
reply->deleteLater();
}
void Downloader::doDownload()
{
manager=新的QNetworkAccessManager(此);
连接(管理器,信号(完成(QNetworkReply*)),此,插槽(replyFinished(QNetworkReply*));
管理器->获取(QNetworkRequest(QUrl)http://api.flickr.com/services/soap/")));
出口(0);
}
无效下载程序::replyFinished(QNetworkReply*reply)
{
如果(回复->错误())
{
qDebug()打开(QFile::Append))
{
文件->写入(回复->读取全部());
文件->刷新();
文件->关闭();
}
删除文件;
}
回复->删除稍后();
}
我可能错了,但您可能需要通过POST或获取参数才能通过您的号码
获取:
GET-wil要求您在URL末尾添加参数,如下所示:
帖子:
POST将要求您使用QUrlQuery对象添加所需的参数
QUrlQuery *postData = new QUrlQuery;
//Replace "arg" by the argument name provided by the API documentation, something like "xml"
postData->addQueryItem("arg", yourNumber);
manager->post(QNetworkRequest(QUrl("http://api.flickr.com/services/soap/")), postData->toString(QUrl::FullyEncoded).toUtf8());
我可能错了,但您可能需要通过POST或获取参数来传递您的号码 获取: GET-wil要求您在URL末尾添加参数,如下所示: 帖子: POST将要求您使用QUrlQuery对象添加所需的参数
QUrlQuery *postData = new QUrlQuery;
//Replace "arg" by the argument name provided by the API documentation, something like "xml"
postData->addQueryItem("arg", yourNumber);
manager->post(QNetworkRequest(QUrl("http://api.flickr.com/services/soap/")), postData->toString(QUrl::FullyEncoded).toUtf8());
你需要肥皂吗
使用KDSoap进行以下操作:
有从*生成代码和不生成代码的示例。wsdl
:您需要SOAP吗
使用KDSoap进行以下操作:
有从
*生成代码和不生成代码的示例。wsdl
:当前代码的确切问题是什么?如果您只是想找一个使用QNetworkAccessManager
的例子,请看一下。谢谢迈克先生的回复。在您的回答中,您解析了JSON,但我需要XML。我真正想要的是,我必须使用web服务连接服务器。在该服务器的客户数据存储中,我只需要通过该web服务传递客户id,然后服务器以XML形式向我提供该特定客户的数据,我想存储该XML文件,以便以后使用打印机将该数据打印在纸上,用于使用Qt处理/处理XML。当前代码的确切问题是什么?如果您只是想找一个使用QNetworkAccessManager
的例子,请看一下。谢谢迈克先生的回复。在您的回答中,您解析了JSON,但我需要XML。我真正想要的是,我必须使用web服务连接服务器。在该服务器的客户数据存储中,我只需要通过该web服务传递客户id,然后服务器以XML形式向我提供该特定客户的数据,我想存储该XML文件,以便以后使用打印机将该数据打印在纸上。请看一下,使用Qt处理/处理XML。这是不对的。您可以对GET请求使用QUrlQuery
,请参阅。事实上,使用QUrlQuery
比使用QString::arg()
自己构建URL要好得多,因为前者会在需要时自动处理转义字符。谢谢您的回复。基本上我想做的是,我有一个web服务URL,我想做一个客户端应用程序来访问web服务方法。我如何在应用程序中使用该web服务的方法?i、 用qtc++开发,这是不对的。您可以对GET请求使用QUrlQuery
,请参阅。事实上,使用QUrlQuery
比使用QString::arg()
自己构建URL要好得多,因为前者会在需要时自动处理转义字符。谢谢您的回复。基本上我想做的是,我有一个web服务URL,我想做一个客户端应用程序来访问web服务方法。我如何在应用程序中使用该web服务的方法?即QT+C++开发