Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在qtc++;_C++_Xml_Qt_Web Services_Response - Fatal编程技术网

C++ 如何在qtc++;

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

我正在尝试为web服务创建一个客户端应用程序。在该应用程序中,我需要通过该web服务链接传递一些整数,然后web服务以XML格式提供一些数据。我能够完成ping该web服务,但我不知道如何通过该web服务传递整数值。请给我一些C++中请求响应Web服务的示例代码。响应数据是XML格式的,我想存储在一些文本文件或向量中。我使用打印机打印所需的数据

以下是我为web服务开发的代码:

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++开发