|
v7: Знатоки WinHttp.WinHttpRequest.5.1 - загляните подкат. | ☑ | ||
---|---|---|---|---|
0
Nutsiiam
04.08.11
✎
18:39
|
Столкнулся с такой фигней:
пОбъект=СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); пОбъект.Open("GET","http://что-то",0); пОбъект.SetCredentials(Имя,Пасс,0); ... пОбъект.Send(); снифлю посылаемый заголовок. В заголовке запроса отсутствует Authorization. Кто-нить сталкивался? |
|||
1
Fragster
гуру
04.08.11
✎
18:41
|
он его пошлет тока если сервер затребует, наверное
|
|||
2
Nutsiiam
04.08.11
✎
18:44
|
Должен слать - иначе авторизации нет. Что я на собственной шкуре сейчас и наблюдаю. В принципе, все это конечно вопрос копеечный - я уже решил проблему путем ручника - дописываю недостающий кусок руками, но мля - все таки хочется дойти до истины! Каким образом при помощи этого объекта можно авторизоваться. Я уже искал по форуму - у кого-то я видел в листинге что это (якобы) должно работать. Но не работает по факту ( Проверял на трех разных компах.
|
|||
3
smaharbA
04.08.11
✎
18:56
|
пОбъект=СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
пОбъект.Open("GET","http://www.n-d.ru/index.sh",0); пОбъект.SetCredentials("Вася","Пупкин",0); пОбъект.Send(); Сообщить(пОбъект.GetAllResponseHeaders()); |
|||
4
AquaKosh
04.08.11
✎
18:56
|
(2) Там после сенда что-то типа этого должно быть:
Статус = пОбъект.Status; Если Статус = 401 Тогда пОбъект.Open("GET","http://что-то",0); пОбъект.SetCredentials(Имя,Пасс,0); КонецЕсли; Дальше ждём нового статуса.... |
|||
5
Nutsiiam
04.08.11
✎
19:06
|
(3) ну Authorization нет там :) Или у тебя есть?
(4) может кусочек какой-то кода есть? ) Я полагаю, что должен быть какой то способ, но не могу пока догнать как ( |
|||
6
smaharbA
04.08.11
✎
19:13
|
(5) только если сервер ее требует
|
|||
7
smaharbA
04.08.11
✎
19:56
|
//*******************************************
Процедура Сформировать() пОбъект=СоздатьОбъект("WinHttp.WinHttpRequest.5.1"); пОбъект.Open("GET","http://www.n-d.ru/index.sh",0); пОбъект.SetCredentials("Vasya","Pupkin",0); пОбъект.Send(); Сообщить(пОбъект.GetAllResponseHeaders()); Сообщить(Лев(пОбъект.ResponseText(),255)); пОбъект.SetCredentials("Petya","Vasin",0); пОбъект.Send(); Сообщить(пОбъект.GetAllResponseHeaders()); Сообщить(Лев(пОбъект.ResponseText(),255)); КонецПроцедуры |
|||
8
Nutsiiam
05.08.11
✎
08:51
|
(7) Спасибо за ответ! В твоем случае я действительно вижу что на один пОбъект.Send() посылается 2 заголовка:
1. раз без авторизации и сервер отвечает ему 401 Authorization Required 2. раз уже с авторизацией и сервер отвечает ему 200 OK А тот сервер, к которому соединяюсь я - отвечает сразу 200 OK А что это за настройка, может подскажешь? |
|||
9
smaharbA
05.08.11
✎
16:52
|
в случае (7)
просто базовая авторизация в файлах .htacces и .htpasswd а вот, что в сабже не знаю, сдается, что авторизация на самой веб странице, а не запрос авторизации сервером ? Адресок бы хоть дал "того сервера" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |