Авторизация с помощью POST-запроса в WinINet

vital24
Дата: 07.01.2012 00:10:46
Заголовок HTTP-страницы

http://lardi-trans.com/log/login.jsp

POST /log/login.jsp HTTP/1.1
Host: lardi-trans.com
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1
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 
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7 
Connection: keep-alive  	
Referer: http://lardi-trans.com/log/login.jsp  
Content-Type: application/x-www-form-urlencoded  	
Content-Length: 76  
backurl=&log=login111&passwd=passwpassw&onlog=%D0%92%D0%BE%D0%B9%D1%82%D0%B8


Исходный код:
HttpCl = "Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
Header = "Content-Type: application/x-www-form-urlencoded"
POSTData = "backurl=&log=login111&passwd=passwpassw&onlog=%D0%92%D0%BE%D0%B9%D1%82%D0%B8"
    hHTTP = InternetOpen(HttpCl, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
    If hHTTP <> 0 Then
        hConnection = InternetConnect(hHTTP, "http://lardi-trans.com", INTERNET_DEFAULT_HTTP_PORT, "", "", INTERNET_SERVICE_HTTP, 0, 0)
        If hConnection <> 0 Then
            hRequest = HttpOpenRequest(hConnection, _
                                       "POST", _
                                       "/log/login.jsp", _
                                       "HTTP/1.1", _
                                       "http://lardi-trans.com/log/login.jsp", _
                                       0, _
                                       INTERNET_FLAG_PRAGMA_NOCACHE Or INTERNET_FLAG_RELOAD, _
                                       0)
            If hRequest <> 0 Then
                If HttpSendRequest(hRequest, Header, Len(Header), POSTData, Len(POSTData)) Then
                    r = InternetReadFile(hRequest, Buffer, BUFFER_LENGTH, Read)
                    While r And (Read <> 0)
                        Response = Response & Left$(Buffer, Read)
                        r = InternetReadFile(hRequest, Buffer, BUFFER_LENGTH, Read)
                        DoEvents
                    Wend
                End If
            End If
        End If
    End If
InternetCloseHandle hRequest
InternetCloseHandle hConnection
InternetCloseHandle hHTTP


Функция HttpSendRequest возвращает false. Сразу после функции ставил GetLastError - возвращает 0 (не могу определить даже ошибку).
Подскажите где может быть ошибка.
Почему HttpSendRequest возвращает false?
LastDllError
Дата: 07.01.2012 01:14:41
автор
Сразу после функции ставил GetLastError - возвращает 0 (не могу определить даже ошибку).


смотрите err.LastDllError
vital24
Дата: 07.01.2012 02:14:23
LastDllError, спасибо огромное! Помогло. Я уже 2 дня ковырялся с этой ошибкой... Нашел ошибку, исправил, все работает.
PWW
Дата: 07.01.2012 16:08:32
vital24,

ИТОГОВЫЙ РЕЗУЛЬТАТ ОПУБЛИКУЙ.
vital24
Дата: 08.01.2012 01:55:59
Изменил строку:
hConnection = InternetConnect(hHTTP, "http://lardi-trans.com", INTERNET_DEFAULT_HTTP_PORT, "", "", INTERNET_SERVICE_HTTP, 0, 0)

на
hConnection = InternetConnect(hHTTP, "lardi-trans.com", INTERNET_DEFAULT_HTTP_PORT, "", "", INTERNET_SERVICE_HTTP, 0, 0)


и в самом начале процедуры добавил строку:
Buffer = Space$(1024)