Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 | 3 | 4 |

 

  Вопрос: Залогиниться к Mail.Ru из VB Добавлено: 19.09.04 21:25  

Автор вопроса:  Comanche

Ответить

  Ответы Всего ответов: 46  

Номер ответа: 31
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #31 Добавлено: 24.09.04 16:43
Я немножко не то имел в виду: винсок ведь, кажется, имеет ограниченный размер буфера, и если принимаемые данные (неважно, какого характера) имеют немалый размер, то по-моему винсок примет их в несколько присестов. По крайней мере, код по чтению почты через POP3, скачанный чуть ли не с этого сайта, делает именно так:

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    ...
    ...
    
    Winsock1.GetData strData

    If Left$(strData, 1) = "+" Or m_State = POP3_RETR Then
        Select Case m_State
            ...
            ...
            Case POP3_RETR
                strBuffer = strBuffer & strData ' << !!!
            ...
            ...
        End Select
    Else
        ' ОШИБКА
    End If
End Sub

То, что я называю "накоплением", сидит вот в этой строчке:
strBuffer = strBuffer & strData

Вот я и хочу узнать, нужно ли мне делать в своём коде что-нибудь подобное. А опираться на Content-Length, имхо, нельзя: это длина только "login-строки", идущей после всех заголовков, а ведь теоретически этот начальный блок с заголовками (размер которого заранее неизвестен) может и не прочитаться за одно событие DataArrival...

Ответить

Номер ответа: 32
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #32 Добавлено: 24.09.04 16:51
СТОП.
Внимательно почитал я вот эту ссылку:
http://www.vbip.com/winsock/winsock_http_07_01.asp

И там написано следующее:

Since the Close event of the Winsock Control lets us know that receiving of HTTP response is completed, we have to analyze that response in the procedure of the Close event.


Т.е. получается, что я тоже могу сделать в своём коде "накопление", и тогда формирование файла Response.html и последующий оператор "IF" уйдёт из Winsock1_DataArrival в Winsock1_Close, а в событии Winsock1_DataArrival останется только "накопление". Так?

И ещё одно:
Всё вышеописанное прекрасно работает на MAIL.RU (спасибо тебе, дружище DaSharm), а вот на NAROD.RU - не пашет: выдернутый из ответного пакета "Location" при попытке открытия в броузере (хоть ручками, хоть через ShellExecute) даёт ошибку :((

Ответить

Номер ответа: 33
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #33
Добавлено: 24.09.04 23:10
В НТТР есть 3 способа определения конца данных, 2 самых распостраненных: в поле Content-Length и по закрытию соединения. Если НТТР пакет от клиента к серверу содержит строку Connection: close, то когда сервер выдаст нам страницу, то закроет соединение, но если же Connection: keep-alive, то сервер не разры.вает соединение
>спасибо тебе, дружище DaSharm
незачто
>а вот на NAROD.RU - не пашет
На самом деле оно пашет, оно не может не пахать. ПРосто нужно немножко попариться и все будет ОК!

Ответить

Номер ответа: 34
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #34 Добавлено: 25.09.04 13:45
Спасибо за информацию. Тогда я просто в пакет авторизации Packet пропишу явно "Connection: close".

Насчёт Narod.Ru:
Вот такой пакет я посылаю при авторизации:

POST http://passport.yandex.ru/cgi-bin/Reg.pl?mode=auth&retpath=http://narod.yandex.ru/userarea/after_register.xhtml HTTP/1.0

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*

Referer: http://narod.yandex.ru/

Accept-Language: ru

Content-Type: application/x-www-form-urlencoded

Proxy-Connection: Keep-Alive

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MRA 3.0 (build 00614))

Host: passport.yandex.ru

Content-Length: 29

Pragma: no-cache



login=xxxxxxxxx&passwd=yyyyyy

(я убрал из этого пакета заголовок "Cookie";)

И вот такой Location получаю в ответном "редиректном" пакете:

/passport?mode=ckicheck&idkey—b9c087331d774bf78664d16f79d097


Он дан в относительной нотации, поэтому я комбинирую его со значением заголовка "Host" из первого пакета и получаю в итоге:

http://passport.yandex.ru/passport?mode=ckicheck&idkey—b9c087331d774bf78664d16f79d097

И попытка открытия вот этого URL'а вызывает ошибку, что у меня отключены "куки" (хотя это не так).

Даже если из первого пакета не убирать заголовок "Cookie", то всё равно я получаю ошибку.

Я полазил по разделу "Помощь" на Народ.Ру - и там написано, что если куки отключены, то ничё работать не будет. По определению. Типа у них так задумано. А вот на Мейл.Ру, хотя в ответном Location тоже есть слово "checkcookie", всё работает и при отключённых куках.

Я так понимаю, что на Мейл.Ру куки - это просто "средство для удобства", а на Народ.Ру - "обязательное средство для работы". Отсюда, наверное, и проблемы.

Поэтому мне кажется, что на Народ.Ру я никак не смогу авторизоваться вышеописанным способом. Или всё-таки есть способ исхитриться?

DaSharm, помоги уж ещё раз :-))

Ответить

Номер ответа: 35
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #35 Добавлено: 25.09.04 14:26
2 Comanche Кинь пример плиз в no_detect@mail.ru

Ответить

Номер ответа: 36
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #36 Добавлено: 25.09.04 16:02
Скинул.

Ответить

Номер ответа: 37
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #37
Добавлено: 25.09.04 18:52
попробую

Ответить

Номер ответа: 38
Автор ответа:
 Александр



Разработчик Offline Client

ICQ: 204034 

Вопросов: 106
Ответов: 1919
 Профиль | | #38 Добавлено: 25.09.04 19:50
Классно... Скинул хакеру, а попробует dasharm...
:)))))

Ответить

Номер ответа: 39
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #39 Добавлено: 25.09.04 20:07
Я вот тоже не врубился ;-)
Может, это одно лицо?

Ответить

Номер ответа: 40
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #40 Добавлено: 25.09.04 23:14
Та вы гоните, Хакер это я, а DaSharm есть DaSharm :))) А за примерчик спасибо

Ответить

Номер ответа: 41
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #41
Добавлено: 26.09.04 10:33
Я попробую на народ.ру пройти авторизацию. ТОлько дайте какой-то логин и пасс.

Ответить

Номер ответа: 42
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #42 Добавлено: 27.09.04 13:10
2DaSharm:
Логин: vb-test
Пароль: vbnet

Ответить

Номер ответа: 43
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #43
Добавлено: 27.09.04 18:55
ок, сегодня вечером попробую.

Ответить

Номер ответа: 44
Автор ответа:
 Comanche



Вопросов: 87
Ответов: 459
 Профиль | | #44 Добавлено: 29.09.04 14:22
Не забыл про меня?
:-)

Ответить

Номер ответа: 45
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #45
Добавлено: 29.09.04 14:43
Извиняюсь, оч. много работы. Попробую при первой возможности

Ответить

Страница: 1 | 2 | 3 | 4 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам