Bis jetzt hab ich nur geschaft, die Seite zu bekommen. Aber wie mach ich so einen spezifischen Request?Weil einfach die url auf http://www.xxx.xx/xxx?username=hugoo&password=pass funktioniert ja nicht.
mein code:
Code: Alles auswählen
#include <QHttpRequestHeader>
#include <QHttp>
#include <QUrl>
#include <QFileInfo>
#include <QFile>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QWidget>
#include <QHBoxLayout>
class MyHttpWidget : public QWidget
{
Q_OBJECT
public:
MyHttpWidget(QWidget *parent = 0);
public slots:
void getStellenAngebote();
void httpRequestFinished();
private:
QHttp *http;
QFile *file;
QPushButton *okButton;
QLineEdit *urlEdit;
QLabel *statusLabel;
QHBoxLayout *hLayout;
};
Code: Alles auswählen
#include "myHttpWidget.h"
#include <QDebug>
MyHttpWidget::MyHttpWidget(QWidget *parent) : QWidget(parent)
{
okButton = new QPushButton("ok");
urlEdit = new QLineEdit("URL");
statusLabel = new QLabel();
hLayout = new QHBoxLayout();
hLayout->addWidget(urlEdit);
hLayout->addWidget(statusLabel);
hLayout->addWidget(okButton);
http = new QHttp(this);
connect( http, SIGNAL(requestFinished(int, bool)), this, SLOT(httpRequestFinished()) );
connect( okButton, SIGNAL( clicked() ), this, SLOT(getStellenAngebote()) );
setLayout(hLayout);
urlEdit->setFocus();
show();
}
void MyHttpWidget::getStellenAngebote()
{
QUrl url = urlEdit->text();
QString fileName = "xxx";
QFile::remove(fileName);
file = new QFile(fileName);
if(!file->open(QIODevice::WriteOnly))
{
qDebug() << "File konnte nicht geöffnet werden";
return;
}
QHttp::ConnectionMode mode = url.scheme().toLower() == "https" ? QHttp::ConnectionModeHttps : QHttp::ConnectionModeHttp;
http->setHost(url.host(), mode, url.port() == -1 ? 0 : url.port());
QByteArray path = QUrl::toPercentEncoding(url.path(), "!$&'()*+,;=:@/");
if (path.isEmpty())
path = "/";
requestHeader = new QHttpRequestHeader("GET",path);
http->get(path,file);
statusLabel->setText("Get");
}
void MyHttpWidget::httpRequestFinished()
{
statusLabel->setText("Finished");
file->write("finished");
file->close();
}