Вот ответ сайта:
Не могу склеить несколько заголовков кукисов (((
Цитата |
---|
HTTP/1.1 302 Found Server: nginx Date: Sun, 05 Oct 2014 05:42:30 GMT Content-Type: text/html; charset=utf-8 Content-Length: 131 Connection: keep-alive Keep-Alive: timeout=20 Cache-Control: private Location: X-AspNetMvc-Version: 3.0 X-AspNet-Version: 4.0.30319 Set-Cookie: Hy701jhkafgPOOYWoehf=346361558F578934C6DDB9182D28E6329737246 Set-Cookie: m_auth=0E4E522DDF280B295655C6A195928745; domain=.24au.ru; path=/; HttpOnly Set-Cookie: e8839924dda2757bd102e60b15c66777=A7D6D04C-A07E-48D6-9EE7-42F8B0B14D2B; domain=24au.ru; expires=Sat, 05-Oct-2024 05:42:32 GMT; path=/ Set-Cookie: is_adult=0; domain=24au.ru; expires=Sun, 05-Oct-2014 17:42:32 GMT; path=/ |
Код |
---|
Function auth() As String ' возвращает идентификатор сессии в случае удачной авторизации, или пустую строку при ошибке On Error Resume Next Dim oXMLHTTP As New WinHttpRequest With oXMLHTTP ' первый запрос - для получения идентификатора сессии .Open "GET", "http://krsk.24au.ru/", False .setRequestHeader "Host", "krsk.24au.ru" .setRequestHeader "Connection", "keep-alive" .setRequestHeader "Cache-Control", "max-age=0" .setRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36" .setRequestHeader "Referer", "http://krsk.24au.ru/" .setRequestHeader "Accept-Encoding", "gzip , deflate, sdch" .setRequestHeader "Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4" .send For Each .getResponseHeader("Set-Cookie") In .getAllResponseHeaders() cookie$ = cookie$ + .getResponseHeader("Set-Cookie") Next If Not cookie$ Like "*SessionId=*" Then MsgBox "Ошибка получения идентификатора сессии", vbCritical, "Обратитесь к разработчику программы" Exit Function End If ' отключаем редирект .Option(WinHttpRequestOption_EnableRedirects) = False ' второй запрос - для авторизации .Open "POST", "http://common.24au.ru/login/", False PostData = "ReturnUrl=http://krsk.24au.ru/&UserName=" & Пользователь & "&Password=" & Пароль & "&RememberMe=false" .setRequestHeader "Host", "common.24au.ru" .setRequestHeader "Connection", "keep-alive" .setRequestHeader "Content-Length", "88" .setRequestHeader "Cache-Control", "max-age=0" .setRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" .setRequestHeader "Origin", "http://krsk.24au.ru" .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36" .setRequestHeader "Content-Type", "application/x-www-form-urlencoded" .setRequestHeader "Referer", "http://krsk.24au.ru/" .setRequestHeader "Accept-Encoding", "gzip , deflate" .setRequestHeader "Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4" .setRequestHeader "Cookie", cookie$ .send PostData For Each .getResponseHeader("Set-Cookie") In .getAllResponseHeaders() cookie$ = cookie$ + .getResponseHeader("Set-Cookie") Next Location$ = .getResponseHeader("Location") ' при удачной авторизации сайт перенаправляет на указанную страницу MsgBox "Location " & Location If Not Location$ Like "*http://krsk.24au.ru/*" Then MsgBox "Ошибка авторизации на сайте atsenergo.ru", vbCritical, "Обратитесь к разработчику программы" Exit Function End If 'Идем на Location .Open "GET", Location$, False .setRequestHeader "Host", "krsk.24au.ru" .setRequestHeader "Connection", "keep-alive" .setRequestHeader "Cache-Control", "max-age=0" .setRequestHeader "Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36" .setRequestHeader "Referer", "http://common.24au.ru/login/" .setRequestHeader "Accept-Encoding", "gzip , deflate, sdch" .setRequestHeader "Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4" .setRequestHeader "Cookie", cookie$ .send cookie$ = .getResponseHeader("Set-Cookie") auth = cookie$ htmlau = .responseText Open "C:\test.txt" For Output As #1 Print #1, htmlau Close #1 End With End Function |