|
Как с помощью обработки залогиниться на сайте (посылая данные методом post) | ☑ | ||
---|---|---|---|---|
0
Ivan Bezdomnyi
24.02.12
✎
06:36
|
Как с помощью обработки залогиниться на сайте (посылая данные методом post)?
Помогите плз? |
|||
1
Wobland
24.02.12
✎
06:43
|
http=Новый HTTPСоединение("techsupp.1c.ru", , Логин, Пароль, Прокси);
не оно? |
|||
2
IamAlexy
24.02.12
✎
06:45
|
(0) посмотри как называются поля в форме авторизации..
затем отправь на сервер что то типа http://site_addres?имяПоляЛогин=Логин&ИмяПоляПАроль=Пароль ну и тд.. то есть надо глянуть чо там хидденами еще в форме авторизации сидит.. |
|||
3
Rie
24.02.12
✎
06:50
|
(2) Это GET-запрос. Ему нужен POST.
|
|||
4
IamAlexy
24.02.12
✎
06:51
|
(3) я думаю, что с вероятностью близкой к ста, ему похрен.. врядли там на сайте рубится гет...
|
|||
5
Rie
24.02.12
✎
06:52
|
(4) А х.з. что у него там за сайт. Может, там вообще капча предусмотрена :-)
|
|||
6
Ivan Bezdomnyi
24.02.12
✎
06:54
|
поля называются name и pass
(2) (3) ну разработчик сайта сказал что надо именно методом post |
|||
7
Ivan Bezdomnyi
24.02.12
✎
06:55
|
(3) а как проверить? попробовать ввести это в браузере?
|
|||
8
IamAlexy
24.02.12
✎
06:55
|
(6) разработчики сайта про метот GET знают? :)
(7) да |
|||
9
Rie
24.02.12
✎
06:58
|
(6) Почитай документацию по HTTPСоединение. Либо как в (1), либо ОтправитьДляОбработки()
|
|||
10
Ivan Bezdomnyi
24.02.12
✎
07:03
|
(8) просто сайт открывается без авторизации
(9) да читал перечитал уже нашел вот такую вещь: - - - Пишем запрос, аналогичный нашему запросу GET для передачи логина и пароля, который был рассмотрен в предыдущей главе: POST http://www.site.ru/news.html HTTP/1.0\r\n Host: www.site.ru\r\n Referer: http://www.site.ru/index.html\r\n Cookie: income=1\r\n Content-Type: application/x-www-form-urlencoded\r\n Content-Length: 35\r\n \r\n login=Petya%20Vasechkin&password=qq - - - http://www.phpclub.ru/detail/article/http_request только как это использовать? |
|||
11
Rie
24.02.12
✎
07:10
|
(10) Вот это:
login=Petya%20Vasechkin&password=qq и есть твой пост-запрос. выше - это заголовки. Адрес сайта - в первой строке. |
|||
12
dk
24.02.12
✎
07:33
|
||||
13
Ivan Bezdomnyi
24.02.12
✎
07:40
|
что-то не понимаю. я делаю так:
ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=My1cV8"); ФайлОтправки = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.ANSI); Boundary = "My1cV8"; ФайлОтправки.ЗаписатьСтроку("--" + Boundary); ФайлОтправки.ЗаписатьСтроку("POST http://mmis.tomsk.ru/user HTTP/1.0" + Символы.ПС + Символы.ПС); ФайлОтправки.ЗаписатьСтроку("Host: mmis.tomsk.ru" + Символы.ПС + Символы.ПС); ФайлОтправки.ЗаписатьСтроку("Referer: http://mmis.tomsk.ru/user" + Символы.ПС + Символы.ПС); ФайлОтправки.ЗаписатьСтроку("Cookie: income=1" + Символы.ПС + Символы.ПС); ФайлОтправки.ЗаписатьСтроку("Content-Type: application/x-www-form-urlencoded" + Символы.ПС + Символы.ПС); ФайлОтправки.ЗаписатьСтроку("Content-Length: 35" + Символы.ПС + Символы.ПС); ФайлОтправки.ЗаписатьСтроку("login=****&password=****"); ФайлОтправки.ЗаписатьСтроку("--" + Boundary); ФайлОтправки.Закрыть(); Соединение = Новый HTTPСоединение("mmis.tomsk.ru", 80); ИмяВременногоФайлаОтвета = "D:\answ.html"; Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, "/user/", ИмяВременногоФайлаОтвета, ЗаголовокHTTP); а в файле ответа приходит страничка авторизации.. как надо сделать? |
|||
14
IamAlexy
24.02.12
✎
07:42
|
(13) да попробуй им логин пароль в браузере методом гет швырнуть
|
|||
15
Rie
24.02.12
✎
07:43
|
(13) Не пиши всё в файл оправки. Туда должен попасть только
login=****&password=**** Прочее - заголовки, это другой параметр. Ну и адрес проверь. Или же как в (14) - вдруг сработает, и голову парить не будешь. |
|||
16
Ivan Bezdomnyi
24.02.12
✎
07:54
|
(14) но ведь в браузере не получилось..
(12) а как в восьмерке будет называться объект, который WinHttp=СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); (15) написал: ФайлОтправки = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.ANSI); Boundary = "My1cV8"; ФайлОтправки.ЗаписатьСтроку("--" + Boundary); ФайлОтправки.ЗаписатьСтроку("name=****&pass=****"); ФайлОтправки.ЗаписатьСтроку("--" + Boundary); ФайлОтправки.Закрыть(); результат тот же( |
|||
17
dk
24.02.12
✎
07:58
|
WinHttp=СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp=Новый "WinHttp.WinHttpRequest.5.1"; |
|||
18
Ivan Bezdomnyi
24.02.12
✎
08:08
|
(17) {Форма.Форма.Форма(181,16)}: Ожидается идентификатор
WinHttp=Новый <<?>>"WinHttp.WinHttpRequest.5.1"; |
|||
19
Rie
24.02.12
✎
08:09
|
(18) Новый COMОбъект(...)
|
|||
20
Ivan Bezdomnyi
24.02.12
✎
08:13
|
(19) ага получилось.
возвращается авторизованная страничка. а заголовки ответа как узнать?) |
|||
21
Rie
24.02.12
✎
08:16
|
(20) GetAllResponseHeaders
|
|||
22
orefkov
24.02.12
✎
08:19
|
Вообще-то мало послать name и pass, надо еще посылать значение для submit кнопки.
Посмотри в форме для input'а с type="submit" что прописано в name="..." и value="..." Потом в (13) смешались в кучу кони люди. Символы.ПС + Символы.ПС - вообще не надо, два перевода строки отделяют заголовок от данных. В файле отправки должно быть: ФайлОтправки.ЗаписатьСтроку("--" + Boundary); ФайлОтправки.ЗаписатьСтроку("Content-Type: application/x-www-form-urlencoded" + Символы.ПС); ФайлОтправки.ЗаписатьСтроку("name=****&pass=****&submit=login"); // submit=login это name и value из input'а с типом submit ФайлОтправки.ЗаписатьСтроку("--" + Boundary); |
|||
23
Ivan Bezdomnyi
24.02.12
✎
08:25
|
> submit=login это name и value из input'а с типом submit
получается op=Войти может op=1 нет? |
|||
24
Ivan Bezdomnyi
24.02.12
✎
08:31
|
(22) ну в общем ни с "op=Войти" ни с "op=1" не получилось. получилось как вот тут Мож кому пригодится, как сделать POST (ну и GET) запрос с 1С на страничку
но это еще полдела) |
|||
25
orefkov
24.02.12
✎
08:31
|
(24)
Я хз, мне на сервере в php приходит имякнопки=заголовоккнопки И обычно сервак просто проверяет, что просто есть какое-то значение, так что может и op=1 тоже прокатит. |
|||
26
Ivan Bezdomnyi
24.02.12
✎
08:39
|
А как с помощью этого WinHttp отправить файл? ну или Base64Строка(Новый ДвоичныеДанные(ИмяФайлаДанных))?
|
|||
27
Ivan Bezdomnyi
24.02.12
✎
09:21
|
а не. простите (26) это из другой оперы.
|
|||
28
Ivan Bezdomnyi
24.02.12
✎
10:14
|
что-то ничего не работает на самом деле. ошибся с файлом ответа когда (12) проверял(
ворачивается страничка авторизации.. должна же уже авторизованная вернуться как я понимаю? |
|||
29
Ivan Bezdomnyi
24.02.12
✎
12:05
|
может надо както определить форму в которую нужно передавать логин пароль?
|
|||
30
Ivan Bezdomnyi
27.02.12
✎
11:00
|
php прогер говорит:
"Надо сначало получить эту страничку, разобрать на ней форму, потом только ее отправлять с логином паролем" тт |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |