[gelöst] Webseiten Quelltext auslesen
-
HappyEnding
- Beiträge: 26
- Registriert: 5. März 2009 14:15
[gelöst] Webseiten Quelltext auslesen
Hi,
evtl. kann mir hier jemand bei meinem Problem helfen.
Ich muss einen Wert von einer Webseite auslesen. Dabei handelt es sich um einen einzelnen String, der einfach nur die derzeitige Zeit des Servers im UNIX Format anzeigt.
Ich hab schon einiges mit QHttp versucht etc. aber komme einfach nicht zu dem gewünschten Ergebnis.
Waere genial wenn mir einer von euch helfen koennte. (wenn moeglich am liebsten mit CodeBeispiel, da tu ich mir am leichtesten)
Danke
HappyEnding
evtl. kann mir hier jemand bei meinem Problem helfen.
Ich muss einen Wert von einer Webseite auslesen. Dabei handelt es sich um einen einzelnen String, der einfach nur die derzeitige Zeit des Servers im UNIX Format anzeigt.
Ich hab schon einiges mit QHttp versucht etc. aber komme einfach nicht zu dem gewünschten Ergebnis.
Waere genial wenn mir einer von euch helfen koennte. (wenn moeglich am liebsten mit CodeBeispiel, da tu ich mir am leichtesten)
Danke
HappyEnding
Zuletzt geändert von HappyEnding am 30. Januar 2010 14:03, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
HappyEnding
- Beiträge: 26
- Registriert: 5. März 2009 14:15
Die Seite ist:
http://julian.meetr.de/meetr/developers/gettimestamp
Liegt es daran, dass es keine absolute URL is, wie in der Doku beschrieben von QHttp::get() verlangt?
Und wenn ja, welche Alternativen gibt es denn um die Zeit irgendwie gelesen zu bekommen?
Danke
HappyEnding
http://julian.meetr.de/meetr/developers/gettimestamp
Liegt es daran, dass es keine absolute URL is, wie in der Doku beschrieben von QHttp::get() verlangt?
Und wenn ja, welche Alternativen gibt es denn um die Zeit irgendwie gelesen zu bekommen?
Danke
HappyEnding
-
HappyEnding
- Beiträge: 26
- Registriert: 5. März 2009 14:15
Ich hab es auf folgende Art probiert, welche aber nur zu einem Absturz des Programms fuehrt:
webtest.h:
webtest.cpp:
Ich hoffe hier kann mir jemand helfen, ich habe naemlich totale Verstaendnisprobleme was diese Aufgabe angeht.
Danke fuer Eure Hilfe und sorry, dass ich anfangs so wenig Informationen gebracht habe.
Evtl hat einer von euch ja ein kleines Beisspiel wie es richtig gemacht gehoert.
mfg
HappyEnding
webtest.h:
Code: Alles auswählen
#ifndef WEBTEST_H
#define WEBTEST_H
#include <QtGui/QWidget>
#include <QHttp>
#include <QUrl>
#include <QHttpResponseHeader>
namespace Ui
{
class WebTest;
}
class WebTest : public QWidget
{
Q_OBJECT
public:
WebTest(QWidget *parent = 0);
~WebTest();
QHttp *http;
public slots:
void downloadFile();
void readFile(QHttpResponseHeader);
private:
Ui::WebTest *ui;
};
#endif // WEBTEST_Hwebtest.cpp:
Code: Alles auswählen
#include "webtest.h"
#include "ui_webtest.h"
#include <qDebug>
WebTest::WebTest(QWidget *parent)
: QWidget(parent), ui(new Ui::WebTest)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(downloadFile()));
connect(http, SIGNAL(readyRead(QHttpResponseHeader)), this, SLOT(readFile(QHttpResponseHeader)));
}
WebTest::~WebTest()
{
delete ui;
}
void WebTest::downloadFile()
{
http = new QHttp;
qDebug() << "test";
http->get("http://julian.meetr.de/meetr/developers/gettimestamp");
}
void WebTest::readFile(QHttpResponseHeader resp)
{
QString set = http->readAll();
qDebug() << "text = " << set;
ui->lineEdit->setText(set);
}Ich hoffe hier kann mir jemand helfen, ich habe naemlich totale Verstaendnisprobleme was diese Aufgabe angeht.
Danke fuer Eure Hilfe und sorry, dass ich anfangs so wenig Informationen gebracht habe.
Evtl hat einer von euch ja ein kleines Beisspiel wie es richtig gemacht gehoert.
mfg
HappyEnding
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
-
HappyEnding
- Beiträge: 26
- Registriert: 5. März 2009 14:15
Das mit dem uninitialisierten Pointer hab ich auch gerade nochmal bemerkt.
Ich habe das ganze jetzt in folgendes geaendert und seitdem laesst es sich auch starten, aber der SLOT wird nie aufgerufen, weil wohl das SIGNAL nie emitiert wird:
webtest.cpp:
Danke fuer die schnelle Antwort.
mfg
HappyEnding
Ich habe das ganze jetzt in folgendes geaendert und seitdem laesst es sich auch starten, aber der SLOT wird nie aufgerufen, weil wohl das SIGNAL nie emitiert wird:
webtest.cpp:
Code: Alles auswählen
#include "webtest.h"
#include "ui_webtest.h"
#include <qDebug>
WebTest::WebTest(QWidget *parent)
: QWidget(parent), ui(new Ui::WebTest)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(downloadFile()));
}
WebTest::~WebTest()
{
delete ui;
}
void WebTest::downloadFile()
{
http = new QHttp;
qDebug() << "test";
http->get("http://julian.meetr.de/meetr/developers/gettimestamp");
connect(http, SIGNAL(readyRead(QHttpResponseHeader)), this, SLOT(readFile(QHttpResponseHeader)));
}
void WebTest::readFile(QHttpResponseHeader resp)
{
QString set = http->readAll();
qDebug() << "text = " << set;
ui->lineEdit->setText(set);
}
mfg
HappyEnding
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ich würde auf requestFinished() connecten. Des weiteren gibt connect() zurück ob es erfolgreich war oder nicht.
Qt hat auch ein [url=http://doc.trolltech.com/4.5/network-http.html]QHttp-Example[/ur] welches genau das macht ws Du möchtest.
Qt hat auch ein [url=http://doc.trolltech.com/4.5/network-http.html]QHttp-Example[/ur] welches genau das macht ws Du möchtest.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
HappyEnding
- Beiträge: 26
- Registriert: 5. März 2009 14:15
-
HappyEnding
- Beiträge: 26
- Registriert: 5. März 2009 14:15
Danke euch beiden.
Danke Christian81, fuer die Hinweise, die mich dazu gebracht haben, mal viel tiefer in diese ganze Materie zu schaun und danke an phlox, der mir einen sehr einfach Weg gezeigt hat, das ganze zu loesen, das naechste mal les ich die Doku gleich viel genauer.
Loesung:
mfg
HappyEnding
Danke Christian81, fuer die Hinweise, die mich dazu gebracht haben, mal viel tiefer in diese ganze Materie zu schaun und danke an phlox, der mir einen sehr einfach Weg gezeigt hat, das ganze zu loesen, das naechste mal les ich die Doku gleich viel genauer.
Loesung:
Code: Alles auswählen
#include "webtest.h"
#include "ui_webtest.h"
#include <qDebug>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
WebTest::WebTest(QWidget *parent)
: QWidget(parent), ui(new Ui::WebTest)
{
ui->setupUi(this);
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(downloadFile()));
}
WebTest::~WebTest()
{
delete ui;
}
void WebTest::downloadFile()
{
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://julian.meetr.de/meetr/developers/gettimestamp")));
}
void WebTest::replyFinished(QNetworkReply *reply)
{
QString set = reply->readAll();
qDebug() << "text = " << set;
ui->lineEdit->setText(set);
}
HappyEnding