QTを使用してPOSTデータをPHPページに送信しようとしています。私のコードは次の通りです:QtはPOSTデータを送信しません
#include <QHttp>
#include <QUrl>
#include <QString>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <iostream>
#include <QNetworkAccessManager>
#include <QObject>
....
void Transmissions::Send()
{
QUrl serviceUrl = QUrl("http://192.168.1.138/postTest.php");
QByteArray postData;
QString username="user="+User.Email()+"&";
QString Passwd="password="+User.Pass();
postData.append(username);
postData.append(Passwd);
QNetworkAccessManager *networkManager = new QNetworkAccessManager(this);
QObject::connect(networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(serviceRequestFinished(QNetworkReply*)));
networkManager->post(QNetworkRequest(serviceUrl), postData);
}
....
void serviceRequestFinished(QNetworkReply *reply)
{
QString data = reply->readAll();
cerr << data.toStdString()<<endl;
}
今、このコードはコンパイルされません。
error: no matching function for call to ‘QNetworkAccessManager::QNetworkAccessManager(Transmissions* const)’
と
error: no matching function for call to ‘QObject::connect(QNetworkAccessManager*&, const char*, Transmissions* const, const char*)’
今How can I POST data to a url using QNetworkAccessManager、私は右のすべてをやっている、ここでQTドキュメントhttp://doc.qt.io/qt-5/qnetworkaccessmanager.html本によると:これらはエラーです。私はQT Docsサイトのコードをコピー&ペーストしても同じエラーが発生することがあります。私はここで何が欠けていますか?
EDIT 私はここにHow to send data back from PHP after a HTTP Post in Qt? を示すPOSTメソッドをしようとした場合、私はこれを取得:
QObject::connect: Cannot connect (null)::configurationAdded(QNetworkConfiguration) to QNetworkConfigurationManager::configurationAdded(QNetworkConfiguration)
誰かが
EDIT2を助けてください。私のコードをVitaminPする おかげで、今コンパイルします。しかし、今、この問題が起こっている:
QObject::connect: Cannot connect (null)::configurationAdded(QNetworkConfiguration) to QNetworkConfigurationManager::configurationAdded(QNetworkConfiguration)
QObject::connect: Cannot connect (null)::configurationRemoved(QNetworkConfiguration) to QNetworkConfigurationManager::configurationRemoved(QNetworkConfiguration)
QObject::connect: Cannot connect (null)::configurationUpdateComplete() to QNetworkConfigurationManager::updateCompleted()
QObject::connect: Cannot connect (null)::onlineStateChanged(bool) to QNetworkConfigurationManager::onlineStateChanged(bool)
QObject::connect: Cannot connect (null)::configurationChanged(QNetworkConfiguration) to QNetworkConfigurationManager::configurationChanged(QNetworkConfiguration)
接続しようとしているオブジェクト/メソッドは何ですか? (null):: configurationAddedは、オブジェクトの作成が失敗したか、またはおそらくMOCされていないように見えます(接続するすべてのオブジェクトはQObjectを拡張し、Q_OBJECTマクロをクラス定義に持つ必要があります)。 – VitaminP
問題だと思います(Edit2から)スロットがあなたの 'Transmissions'クラスのメンバではないということですが、単なるスタンドアロンの関数なので、ヘッダファイルを次のようにしてください:' class Transmissions:public QObject(){slots:void configurationAdded(..) ; void configurationRemoved(...);} '等 – docsteer
@docsteer、あなたの権利私はそれらを私の見出しに入れませんでした。ここにいくつかのドキュメントがあります。doc.qt.nokia.com/stable/qnetworkconfigurationmanager.html私はdidnのように見えます – CountMurphy