|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.04.2014, 02:49 | #1 |
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
Регистрация: 28.03.2008
Сообщений: 358
|
На POST запрос получаю 413.
Использую Qt 5.2.
QSslSocket. Не могу авторизоваться на сервере. В общем запросы в браузере: Выделенные для приложения запросы в браузере: https://stat.inetvl.ru/ GET / HTTP/1.1 Host: stat.inetvl.ru User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive HTTP/1.0 200 OK Date: Thu, 03 Apr 2014 14:12:00 GMT Server: Apache X-Powered-By: PHP/5.3.27-pl0-gentoo Set-Cookie: session=00268492c7ba6380178b37b12d6 846134207fe85%7E533d6c30e02892-50134862; path=/ Content-Length: 3552 Connection: close Content-Type: text/html; charset=utf8 ___________________________________ ___________________________________ https://stat.inetvl.ru/user/login/ POST /user/login/ HTTP/1.1 Host: stat.inetvl.ru User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: https://stat.inetvl.ru/ Cookie: session=00268492c7ba6380178b37b12d6 846134207fe85%7E533d6c30e02892-50134862 Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 76 login_input=login&pwd_input=pass&En ter=%D0%92%D0%BE%D0%B9%D1%82%D0%B8 HTTP/1.0 302 Found Date: Thu, 03 Apr 2014 14:12:07 GMT Server: Apache X-Powered-By: PHP/5.3.27-pl0-gentoo Location: https://stat.inetvl.ru/ Referer: https://stat.inetvl.ru/user/login Content-Length: 0 Connection: close Content-Type: text/html; charset=utf-8[/spoiler] Как реализовывал все (извиняюсь за не очень код, но это естественно тестовый вариант): [CODE] QSslSocket socket; socket.connectToHostEncrypted("stat .inetvl.ru", 443); if (!socket.waitForEncrypted()) { qDebug() << socket.errorString(); } QString repost; QString str; str = "GET / HTTP/1.1\r\n"\ "Host: stat.inetvl.ru\r\n"\ "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0\r\n"\ "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"\ "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n"\ "Accept-Encoding: gzip, deflate\r\n"\ "Connection: keep-alive\r\n\r\n"; socket.write(str.toUtf8()); qDebug () << "Отправлено: \r\n" + str; while (socket.waitForReadyRead()) { repost = repost + socket.readAll().data(); } qDebug() << "Получено:\r\n" + repost; int i=0, e=0; QString cookie; i= repost.indexOf("Set-Cookie: ") + 12; e= repost.indexOf("; path=/") - i; cookie = repost.mid(i, e); str = "POST /user/login/ HTTP/1.1\r\n"\ "Host: stat.inetvl.ru\r\n"\ "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0\r\n"\ "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n"\ "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3\r\n"\ "Accept-Encoding: gzip, deflate\r\n"\ "Referer: https://stat.inetvl.ru/\r\n"\ "Cookie: " + cookie + "\r\n"\ "Connection: keep-alive\r\n"\ "Content-Type: application/x-www-form-urlencoded\r\n"\ "Content-Length: 76\r\n"\ " login_input=login&pwd_input=pass&En ter=%D0%92%D0%BE%D0%B9%D1%82%D0%B8\ r\n\r\n"; socket.connectToHostEncrypted("stat .inetvl.ru", 443); if (!socket.waitForEncrypted()) { qDebug() << socket.errorString(); } socket.write(str.toUtf8()); qDebug() << "Отправляю запрос: \r\n" + str; repost = ""; while (socket.waitForReadyRead()) { repost = repost + socket.readAll().data(); } qDebug() << "Ответ:" + repost; В прикрепленном файле полностью указаны запросы браузера. Последний раз редактировалось AngelOfDeath; 04.04.2014 в 02:51. |
04.04.2014, 02:50 | #2 |
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
Регистрация: 28.03.2008
Сообщений: 358
|
Ну и соответственно вывод из qDebug:
Код HTML:
Qml debugging is enabled. Only use this in a safe environment! QML debugging is enabled. Only use this in a safe environment. "Отправлено: GET / HTTP/1.1 Host: stat.inetvl.ru User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Connection: keep-alive " "Получено: HTTP/1.0 200 OK Date: Thu, 03 Apr 2014 14:16:48 GMT Server: Apache X-Powered-By: PHP/5.3.27-pl0-gentoo Set-Cookie: session=a6d70996633ae7e9a81ce306c4ed44776c0d329b%7E533d6d509da776-45157025; path=/ Content-Length: 3552 Connection: close Content-Type: text/html; charset=utf8 "Отправляю запрос: POST /user/login/ HTTP/1.1 Host: stat.inetvl.ru User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate Referer: [url]https://stat.inetvl.ru/[/url] Cookie: session=a6d70996633ae7e9a81ce306c4ed44776c0d329b%7E533d6d509da776-45157025 Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 76 login_input=login&pwd_input=pass&Enter=%D0%92%D0%BE%D0%B9%D1%82%D0%B8 " [B]"Ответ:HTTP/1.0 413 Request Entity Too Large Date: Thu, 03 Apr 2014 14:16:48 GMT Server: Apache Connection: close Content-Type: text/html; charset=iso-8859-1[/B] Заменить %D0%92%D0%BE%D0%B9%D1%82%D0%B8 на Войти (чем эта строка собственно и является). Отправлять в разных кодировках. Больше ничего на ум не приходит. Что можете посоветовать? Последний раз редактировалось AngelOfDeath; 04.04.2014 в 02:54. |
04.04.2014, 16:21 | #3 |
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
Регистрация: 28.03.2008
Сообщений: 358
|
Проблема решена с помощью QNetworkAccessManager, вместо QSslSocket
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
при отправки post получаю socket error 10054 | Smagulov85 | Работа с сетью в Delphi | 3 | 19.09.2012 01:03 |
Post запрос | STALERUM | Работа с сетью в Delphi | 1 | 16.09.2012 21:10 |
Post запрос | Arsenx777 | PHP | 0 | 19.04.2012 19:35 |
Post запрос | grafgrial | PHP | 2 | 19.10.2011 05:22 |
через API получаю полный путь и название процесса, а получаю только название процесса | Den7656 | Win Api | 5 | 12.09.2011 09:03 |