Имя: Пароль:
1C
1C 7.7
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

а вот, что в сабже не знаю, сдается, что авторизация на самой веб странице, а не запрос авторизации сервером ?
Адресок бы хоть дал "того сервера"