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.