[c++][qt]Wysyłanie danych przez POST

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Awatar użytkownika
none
Sędziwy Jeż
Sędziwy Jeż
Posty: 60
Rejestracja: 12 wrz 2007, 18:11
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: LXDE

[c++][qt]Wysyłanie danych przez POST

Post 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
%55%62%75%6E%74%75%20%26%20%44%65%62%69%61%6E%20%75%73%65%72%2C%20%6D%79%20%67%67%3A%31%30%30%33%30%39%38%38
mikolajs
Wytworny Kaczor
Wytworny Kaczor
Posty: 352
Rejestracja: 15 paź 2008, 18:30
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: [c++][qt]Wysyłanie danych przez POST

Post autor: mikolajs »

O ile mi wiadomo biblioteka QT i klasa QHttp pozwala jedynie napisać klienta http.
Awatar użytkownika
none
Sędziwy Jeż
Sędziwy Jeż
Posty: 60
Rejestracja: 12 wrz 2007, 18:11
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: LXDE

Odp: [c++][qt]Wysyłanie danych przez POST

Post autor: none »

To jaką bibliotekę powinienem zostawać cURL ?
%55%62%75%6E%74%75%20%26%20%44%65%62%69%61%6E%20%75%73%65%72%2C%20%6D%79%20%67%67%3A%31%30%30%33%30%39%38%38
BadRay
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 25 sty 2009, 13:05
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME

Odp: [c++][qt]Wysyłanie danych przez POST

Post 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 ;):)....
Awatar użytkownika
none
Sędziwy Jeż
Sędziwy Jeż
Posty: 60
Rejestracja: 12 wrz 2007, 18:11
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: LXDE

Odp: [c++][qt]Wysyłanie danych przez POST

Post 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ć.
%55%62%75%6E%74%75%20%26%20%44%65%62%69%61%6E%20%75%73%65%72%2C%20%6D%79%20%67%67%3A%31%30%30%33%30%39%38%38
adrian5632
Przyjaciel
Przyjaciel
Posty: 259
Rejestracja: 17 gru 2006, 16:07
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: KDE Plasma

Odp: [c++][qt]Wysyłanie danych przez POST

Post 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.
[IMG]http://www.ubudsl.com/media/UbuDSL.png[/IMG]
Masz problem z UbuDSL? Nie zapomnij wygenerować i załączyć loga do postu!
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 17 gości