Strona 1 z 1
[c++][qt]Wysyłanie danych przez POST
: 08 lut 2009, 10:30
autor: none
Witam mam pytanie jak wysłać dane POST do strony zrobiłem cobie testowy kod :
QHttp postt;
QByteArray dane_post;
dane_post.append("text=ok");
postt.setHost("localhost");
postt.post(QString("/index.php"), dane_post);
ui->lineEdit->setText(postt.readAll());
I niestety nie działa chodzi mi o to by wysłać do
http://localhost/index.php dane text=ok metodą POST. Napisałem program w php który wyświetla zmienna text ale program nic nie pokazuje
Odp: [c++][qt]Wysyłanie danych przez POST
: 08 lut 2009, 18:12
autor: mikolajs
O ile mi wiadomo biblioteka QT i klasa QHttp pozwala jedynie napisać klienta http.
Odp: [c++][qt]Wysyłanie danych przez POST
: 08 lut 2009, 18:56
autor: none
To jaką bibliotekę powinienem zostawać cURL ?
Odp: [c++][qt]Wysyłanie danych przez POST
: 09 lut 2009, 21:58
autor: BadRay
mikolajs pisze:O ile mi wiadomo biblioteka QT i klasa QHttp pozwala jedynie napisać klienta http.
A klient http wcale nie używa POST, wcale

:)....
Odp: [c++][qt]Wysyłanie danych przez POST
: 16 lut 2009, 21:48
autor: none
Ale przecież np QWebView używa post ? Myślałęm by zrobić to przez nagłówek http ale jak dokładnie mógł by ktoś mi powiedzieć próbowałem szukać w klasie QHttpRequestHeader ale nic nie znalazłem. Czy mógłby ktoś pomódz jak to zrobić.
Odp: [c++][qt]Wysyłanie danych przez POST
: 19 lut 2009, 18:04
autor: adrian5632
Kod: Zaznacz cały
postt.post(QString("/index.php"), dane_post);
ui->lineEdit->setText(postt.readAll());
I tu jest problem - metody sieciowe biblioteki Qt4 działają
asynhronicznie - tzn., że wysłanie żądania nie oznacza oczekiwania na jego zakończenie (po wywołaniu metody jest ona od razu opuszczana). Metoda post() (jak i inne) zwraca numer rządania, a gdy rządanie zostanie zakończone, emitowany jest odpowiedni sygnał, który w argumencie przesyła numer zakończonego rządania. Musisz więc utworzyć slot odbierający sygnały o zakończeniu rządania (requestFinished (
int id, bool error )), w której będziesz porównywał id ze swoimi i po wychwyceniu rządanego dokonujesz czytania danych.