Имя: Пароль:
1C
1С v8
SetCredentials через HTTPСоединение
0 igel1969
 
20.01.17
09:46
Здравствуйте!
Есть такой пример отправки HTTP POST запроса:

HTTP = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
HTTP.Open("POST","http://ххх.ххх.ххх.ххх";+ресурс, Ложь);
HTTP.Option(2,"utf-8");
HTTP.SetRequestHeader("Content-type", "text/plaint; charset=utf8");
HTTP.SetRequestHeader("Authorization","Basic USER:PASS");
HTTP.SetCredentials("USER","PASS",0 );
HTTP.Send(СтрЗапроса);
HTTP.WaitForResponse();
ответсервера = HTTP.status;
ТекстОтвета = HTTP.ResponseText;
Сообщить(ответсервера);
Сообщить(ТекстОтвета);

Это человек писал на семерке.

Но я пишу на 8.2, поэтому хочу использовать более передовые,
встроенные технологии, а именно HTTPСоединение:

HTTP = Новый HTTPСоединение("ххх.ххх.ххх.ххх",80,,, , Ложь);
ЗаголовокЗапросаHTTP = Новый Соответствие();
ЗаголовокЗапросаHTTP.Вставить("Content-type", "text/plaint; charset=utf8");
ЗаголовокЗапросаHTTP.Вставить("Authorization","Basic USER:PASS");
HTTPЗапрос = Новый HTTPЗапрос(ресурс, ЗаголовокЗапросаHTTP);
HTTPЗапрос.УстановитьТелоИзСтроки(СтрЗапроса, КодировкаТекста.UTF8);
HTTPОтвет = HTTP.ОтправитьДляОбработки(HTTPЗапрос, КаталогИБ()+"xxx.txt");
Сообщить(HTTPОтвет.КодСостояния);
ответсервера = HTTPОтвет.КодСостояния;

Не могу понять две вещи:
1. Как в HTTPСоединение вызвать метод SetCredentials, чтобы задать логин и пароль?
2. В выражении ("Authorization","Basic USER:PASS") должны стоять именно слова USER и PASS или конкретные логин и пароль?

Помогите, пожалуйста, дело новое для меня ((((
1 igel1969
 
20.01.17
10:21
очень важный для меня вопрос, поэтому осмелюсь поднять его, простите, модераторы.
2 Широкий
 
20.01.17
10:44
HTTPСоединение.Прокси (HTTPConnection.Proxy)
HTTPСоединение (HTTPConnection)
Прокси (Proxy)
3 Широкий
 
20.01.17
10:46
Либо
HTTPСоединение.Пользователь
HTTPСоединение.Пароль
4 igel1969
 
20.01.17
11:36
(2) (3) Спасибо, это я и сам пробовал.
Оказалось, что если я указываю логин и пароль при создании коннекта, то в заголовок вот это HTTP.SetRequestHeader("Authorization","Basic USER:PASS");
писать уже не надо. И все заработало.
5 igel1969
 
20.01.17
11:38
т.е. ЗаголовокЗапросаHTTP.Вставить("Authorization","Basic USER:PASS"); писать не надо, я имел в виду