Пожалуйста, обратите внимание, что пользователь заблокирован
Подскажите по WinInet - как получить страницу сайта после авторизации? Т.е. чтобы передались куки и все прочее. Авторизация на сайте идет так:
Пробовал после Sleep писать что-то вида InternetReadFile, передавая hReq, но показывает мне лишь страницу входа (точнее, сообщение что вход успешен, сейчас вас перенаправят на главную страницу). А как мне считать другую страницу, будучи залогиненным? Нужно новый запрос через HttpOpenRequest формировать?
Код:
.486
.model flat, stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\wininet.inc
include \masm32\macros\macros.asm
include \masm32\macros\windows.asm
uselib kernel32, masm32, user32,wininet
.data
uri db "/login.php?action=in",0
login_cont db 256 dup (0)
login_shab db "form_sent=1&redirect_url=&req_username=%s&req_password=%s&login=%C2%EE%E9%F2%E8",0
login db "user1",0
pass db "111222",0
headers db 13,10,"Accept: text/html,application/xhtml+xml,application/xml",
13,10,"Accept-Language: ru-ru,ru;q=0.8,en-us",
13,10,"Accept-Charset: windows-1251",
13,10,"Keep-Alive: 115",
13,10,"Connection: keep-alive",
13,10,"Content-Type: application/x-www-form-urlencoded",0
buf db 1024 dup (0)
lpszReferer db "http://te.mybb.ru/login.php",0
.data?
hInetSes dd ?
hConnect dd ?
hReq dd ?
bReaded dd ?
.code
start:
invoke wsprintf,addr login_cont,addr login_shab,addr login,addr pass
invoke InternetOpen,chr$("Mozilla/5.0"),INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0
mov hInetSes,eax
invoke InternetConnect,hInetSes,chr$("te.mybb.ru"),INTERNET_DEFAULT_HTTP_PORT,\
0,0,INTERNET_SERVICE_HTTP,0,0
.if eax==0
Invoke MessageBox,0,LastError$(),chr$("InternetConnect fail"),0
.endif
mov hConnect,eax
invoke HttpOpenRequest,hConnect,chr$("POST"),addr uri,0,addr lpszReferer,\
0,INTERNET_FLAG_KEEP_CONNECTION,0
.if eax==0
Invoke MessageBox,0,LastError$(),chr$("HttpOpenRequest fail"),0
.endif
mov hReq,eax;handle of request
invoke HttpSendRequest,hReq,addr headers,sizeof headers,addr login_cont,sizeof login_cont
.if eax==0
Invoke MessageBox,0,LastError$(),chr$("HttpSendRequest fail"),0
.endif
Invoke Sleep,3000
invoke InternetCloseHandle,hInetSes
Invoke ExitProcess,0
end start
Пробовал после Sleep писать что-то вида InternetReadFile, передавая hReq, но показывает мне лишь страницу входа (точнее, сообщение что вход успешен, сейчас вас перенаправят на главную страницу). А как мне считать другую страницу, будучи залогиненным? Нужно новый запрос через HttpOpenRequest формировать?