Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2014, 02:49   #1
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 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;




В прикрепленном файле полностью указаны запросы браузера.
Вложения
Тип файла: txt тттт.txt (17.3 Кб, 132 просмотров)

Последний раз редактировалось AngelOfDeath; 04.04.2014 в 02:51.
AngelOfDeath вне форума Ответить с цитированием
Старый 04.04.2014, 02:50   #2
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 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.
AngelOfDeath вне форума Ответить с цитированием
Старый 04.04.2014, 16:21   #3
AngelOfDeath
Delphi/C++/Asm
Форумчанин Подтвердите свой е-майл
 
Аватар для AngelOfDeath
 
Регистрация: 28.03.2008
Сообщений: 358
По умолчанию

Проблема решена с помощью QNetworkAccessManager, вместо QSslSocket
AngelOfDeath вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при отправки 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