Всем привет.
Имеется конфигурация на 8.3.10 и Apache 2.2
В конфигурации есть HTTP-сервис, база опубликована, при входе через браузер все ок.
Имеется другая база которая обращается через HTTP сервис к первой, на моем домашнем компе все работает, данные летают.
На серваке клиента же, при обращении к HTTP-сервису возвращается результат с кодом состояния - 401 Не Авторизирован.
Так вот вопрос: когда я пишу
HTTPСоединение = Новый HTTPСоединение("АДРЕС", ПОРТ, "ПОЛЬЗОВАТЕЛЬ", "ПАРОЛЬ");
Bernet @ Сегодня, 10:44
,
Добрый день.
HTTPСоединение = Новый HTTPСоединение("АДРЕС", ПОРТ, "ПОЛЬЗОВАТЕЛЬ", "ПАРОЛЬ");
ed.kharkov @ Сегодня, 11:08
,
все равно не дошло, если Адрес = "localhost/UPP/hs/ИМЯМОЕГОСЕРВИСА" то Пользователь - это Пользователь Апача или 1С?
Не понятно в синтаксис-помощнике написали. Тут идет обращение к веб-серверу, но при этом дальше перекидывает на опубликованный сервис, в итоге чья авторизация падает?
Bernet @ Сегодня, 11:13
,
Как вариант можно еще попробовать использовать защищенное соединение, у меня было пару случаев, когда это помогло.
ssl = Новый ЗащищенноеСоединениеOpenSSL;
HTTPСоединение = Новый HTTPСоединение("АДРЕС",ПОРТ,"ПОЛЬЗОВАТЕЛЬ","ПАРОЛЬ",,,ssl);
ed.kharkov @ Сегодня, 11:24
,
ssl в конфиг файле Апача закомментирован,не думаю что в нем проблема
Bernet, код бы полностью.
&НаСервере
Процедура АвторизоватьсяНаСервере()
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, Символы.Таб);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.ПроверятьСтруктуру = Ложь;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("user");
ЗаписьJSON.ЗаписатьЗначение("НЕКИЙ_ПОЛЬЗОВАТЕЛЬ_ВСПРАВОЧНИКЕ");
ЗаписьJSON.ЗаписатьИмяСвойства("pass");
ЗаписьJSON.ЗаписатьЗначение("НЕКИЙ_ПАРОЛЬ_ВСПРАВОЧНИКЕ");
ЗаписьJSON.ЗаписатьКонецОбъекта();
//ЗаписьJSON.Закрыть();
СтрокаJSON = ЗаписьJSON.Закрыть();
// ОТПРАВЛЯЕМ ЗАПРОС И ПОЛУЧАЕМ ОТВЕТ
Результат = ОтправитьСообщениеJSON(СтрокаJSON, "/ИМЯМОЕГОСЕРВИСА", "POST", Истина);
Сообщить(Результат.КодСостояния);
КонецПроцедуры
&НаСервере
Функция ОтправитьСообщениеJSON(СтрокаJSON, АдресРесурса, Метод, ТребуетсяАвторизация = Истина) Экспорт
HTTPСоединение = Новый HTTPСоединение("localhost/UPP/hs", МОЙПОРТАПАЧА, "ПОЛЬЗОВАТЕЛЬ_ИБ", "ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_ИБ");
HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, "UTF-8", ИспользованиеByteOrderMark.НеИспользовать);
Попытка
Если Метод = "POST" Тогда
Результат = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос); // POST
ИначеЕсли Метод = "GET" Тогда
Результат = HTTPСоединение.Получить(HTTPЗапрос); // GET
КонецЕсли;
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Возврат Результат;
КонецФункции
Не знаю, как это могло работать.
HTTPСоединение = Новый HTTPСоединение("localhost/UPP/hs", МОЙПОРТАПАЧА, "ПОЛЬЗОВАТЕЛЬ_ИБ", "ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_ИБ");
Vofka @ Сегодня, 12:59
,
фак, но на домашнем же обмены шли именно при таком коде.... Вроде бы вернуло 200 типа все ок, попробую обменяться полностью
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua