Russian Qt Forum

Qt => Работа с сетью => Тема начата: qtuser от Сентябрь 26, 2007, 14:07



Название: QSslSocket и POST
Отправлено: qtuser от Сентябрь 26, 2007, 14:07
Делаю коннект к серверу по https с помощью QSslSocket, коннект проходит удачно, после необходимо отправить POST запрос для логина, как я понимаю делается с помощью socket.write("string"). Подскажите как сформироваться корректный POST запрос.
P.S. Все происходит без участия QHttp.


Название: Re: QSslSocket и POST
Отправлено: Metrix от Сентябрь 29, 2007, 11:38
Я бы конечно посоветовал, подключить QSslSocket к QHttp, так будет проще сделать POST запрос, да и ответ парсить не надо будет...
   А вообще как я понял делается это по анологии с GET запросом. Так написано в доке и могу пердположить если GET заменить на POST то будет то что тебе нужно.
Код:
int main(int argc, char **argv)
{
    QCoreApplication app(argc, argv);

    QSslSocket socket;
    socket.connectToHostEncrypted("www.paypal.com", 443);
    socket.write("GET / HTTP/1.0\r\n\r\n");
    while (socket.waitForReadyRead())
        qDebug() << socket.readAll().data();
}

Первый слэш после GET - будет как раз строкой запроса (path+query).


Название: Re: QSslSocket и POST
Отправлено: qtuser от Сентябрь 29, 2007, 18:24
Собственно, этот пример я видел, так я пытался делать, но от сервера никакого ответа не приходило. Смотрел пример "Secure Socket Client", идущий с библиотекой QT, в нем реализован коннект к серверу, показ информации о сертификате и возможность отправлять данные на сервер (есть lineEdit, в котором можно набрать запрос и по кнопке "send" происходит socket.write(lineEdit.toUtf8() + "\r\n")). В итоге так и не получилось сформировать POST запрос, никких реакций от сервера не было. Отсюда главная проблема - корректый POST запрос. Как его сформировать, именно POST с передачей параметров формы? Кто-нибудь пробовал, разобрался и получилось ли?


Название: Re: QSslSocket и POST
Отправлено: Вячеслав от Сентябрь 29, 2007, 21:39
А сюда посмотреть ? http://www.w3.org/Protocols/HTTP/1.1/rfc2616bis/draft-lafon-rfc2616bis-03.html#POST (http://www.w3.org/Protocols/HTTP/1.1/rfc2616bis/draft-lafon-rfc2616bis-03.html#POST)
http://www.javaportal.ru/java/articles/java_http_web/article03.html (http://www.javaportal.ru/java/articles/java_http_web/article03.html)


Название: Re: QSslSocket и POST
Отправлено: qtuser от Сентябрь 30, 2007, 10:25
Читал я про POST запрос и пытался формировать его по похожей документации, но никаких реакций от сервера не было. Даже не приходило "400 Bad Request". Попробую более подробно изучть вопрос, возможно, разберусь в чем проблемы.


Название: Re: QSslSocket и POST
Отправлено: Вячеслав от Сентябрь 30, 2007, 17:11
А проксю поставить и посмотреть как оно выглядит из осла\оперы\лисы  ?