Привет всем!
Я бы не написал если бы не возникла проблема. Забыл пас от мыла на mail.ru(а мобила не подключена к меилу - старый аккаунт, про вопросы вообще молчу )
Решил написать POST запрос и вроде все норм, но вот беда. Я не вижу правильно ли я ответил на секретный вопрос или нет.
Вопрос: Как сделать так чтобы если при проверке сервера ответ правильный, то выводилось Об этом сообщение на Экран?
Эт мой POST запрос.
вместо
XXX- мой логин,
*** - мой ответ.
P.S. Если надо что-то еще скажите.
Я бы не написал если бы не возникла проблема. Забыл пас от мыла на mail.ru(а мобила не подключена к меилу - старый аккаунт, про вопросы вообще молчу )
Решил написать POST запрос и вроде все норм, но вот беда. Я не вижу правильно ли я ответил на секретный вопрос или нет.
Вопрос: Как сделать так чтобы если при проверке сервера ответ правильный, то выводилось Об этом сообщение на Экран?
Эт мой POST запрос.
Код:
$sDomain = 'MAIL.RU' ;домен или ip-адрес
$iPort = 80 ;порт
$sParameters = 'action=answer&Username=XXX&Domain=mail.ru&Submit_PasswordAnswer=1&answer=***'
;Запрос, который будет отправлен серверу
$sRequest = 'POST /cgi-bin/passremind HTTP/1.1' & @CRLF ;Request-строка
$sRequest &= 'Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg,
application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*' & @CRLF
$sRequest &= 'Referer: http://e.mail.ru/cgi-bin/passremind' & @CRLF
$sRequest &= 'Accept-Language: ru-RU' & @CRLF
$sRequest &= 'User-Agent: IE' & @CRLF ;au3browser' & @CRLF
$sRequest &= 'Content-Type: application/x-www-form-urlencoded' & @CRLF ;
$sRequest &= 'Accept-Encoding: gzip, deflate' & @CRLF
$sRequest &= 'Host: e.mail.ru' & @CRLF
$sRequest &= 'Content-Length: ' & StringLen($sParameters) & @CRLF
$sRequest &= 'Connection: Keep-Alive' & @CRLF
$sRequest &= 'Cache-Control: no-cache' & @CRLF
$sRequest &= @CRLF ;Заголовки от параметров отделяет пустая строка
$sRequest &= $sParameters ;Параметры в запросе
If TCPStartup() = 0 Then ;запускаем TCP/UDP-службы
MsgBox(16, 'Ошибка', 'Не удалось запустить TCP/UDP-службы.')
Exit 1
EndIf
$sIP = TCPNameToIP($sDomain) ;получаем ip-адрес
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось получить ip-адрес сервера.')
Exit 2
EndIf
$iSocket = TCPConnect($sIP, $iPort) ;соединяемся с сервером
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось соедениться с сервером.')
Exit 3
EndIf
TCPSend($iSocket, $sRequest) ;отправляем сообщение
If @error Then
MsgBox(16, 'Ошибка', 'Не удалось отправить запрос.')
Exit 4
EndIf
Sleep(1000)
ProgressSet( 33, "Этап 1. Регистрация Аккаунта")
$sData = ''
$iTimer = TimerInit() ;запускаем таймер
Do
$sBuffer = TCPRecv($iSocket, 1024) ;получаем часть сообщения сервера
$iError = @error
If Not $sBuffer = '' Then ;если удалось получить сообщение
$sData &= $sBuffer ;сохраняем полученное сообщение
$iTimer = TimerInit() ;обнуляем таймер
EndIf
Until $iError <> 0 Or TimerDiff($iTimer) > 5000 ;если при получении сообщения произошла ошибка (данные получены, соединение закрыто) или в течении 5 секунд ничего не было получено, выход из цикла
TCPCloseSocket($iSocket)
TCPShutdown()
$aData = StringRegExp($sData, '(?s)(.*?)\r\n\r\n(.*)', 3) ;отделяем http-заголовки от тела сообщения ('заголовки' & @CRLF & @CRLF & 'тело')
;If @error Then
;MsgBox(16, 'Ошибка', 'Полученные данные неверны.')
; MsgBox(16, 'Создание завершено', 'Идет подтверждение.')
; Sleep(100)
;Exit 5
;EndIf
вместо
XXX- мой логин,
*** - мой ответ.
P.S. Если надо что-то еще скажите.