Имя: Пароль:
1C
1С v8
HTTP сервис
, , ,
0 Renat11111
 
15.11.19
20:35
Соединение = Новый HTTPСоединение("localhost",,"Admin","1");
        
    ЗаписьJSON = Новый ЗаписьJSON;    
    //Или в строку
    ЗаписьJSON.УстановитьСтроку();
    //Запись структуры
    Структура = Новый Структура;
    Структура.Вставить("Поле1", "Значение1");     
    Структура.Вставить("Поле2", "Значение2");
    Структура.Вставить("Поле3", "Значение3");
    ЗаписатьJSON(ЗаписьJSON, Структура);
        
    СериализованнаяСтрока = ЗаписьJSON.Закрыть();
    Запрос = Новый HTTPЗапрос("/BASE_KA_VNEDRENIE_RENAT/hs/Files");
    Запрос.УстановитьТелоИзСтроки(СериализованнаяСтрока);
    ОтветHTTP = Соединение.ОтправитьДляОбработки(Запрос);

    
    
    
    Результат = Соединение.Получить(Запрос);
    
    Сообщить("Нам вернули код " + Результат.КодСостояния);


Возврат код состояния 404 Кому не лень обьясните как правильно
1 ГдеСобака Зарыта
 
15.11.19
21:01
Ну вот на первой странице форума есть такая же тема. Что ж поиском то не воспользоваться?
Твой сервис не опубликован, либо не по тому адресу обращаешься.
2 Renat11111
 
15.11.19
21:12
Запрос = Новый HTTPЗапрос("/BASE_KA_VNEDRENIE_RENAT/hs/Files/444");
    //Запрос.УстановитьТелоИзСтроки("444");

Так работает возврат 200

Запрос = Новый HTTPЗапрос("/BASE_KA_VNEDRENIE_RENAT/hs/Files");
Запрос.УстановитьТелоИзСтроки("444");

так нет 404
3 Renat11111
 
15.11.19
21:13
(1) опубликован он
4 ДенисЧ
 
15.11.19
21:15
Он у тебя POST не понимает. Криво опубликовал
5 Renat11111
 
15.11.19
21:17
(4) а как не криво буду ну очень благодарен Изучаю так на будущее Хочу туда JSON строки научиться кидать
6 Filin
 
15.11.19
21:24
Какой шаблон URL? Это первое. Если твой URL не попал в шаблон - обработчик не ответит.
Обработчик какого метода ты создал? Это второе. Как правильно заметили выше - GET и POST это разные обработчики. "ОтправитьДляОбработки" - это метод POST. "Получить" - это метод GET.
7 Renat11111
 
15.11.19
21:29
(6) /{File} а метод POST
8 Renat11111
 
15.11.19
21:31
Все смешалось в доме Облонских и в моей голове Надо обмозговать то что мне написали ))) вроде наводку дали
9 Filin
 
15.11.19
23:29
Для обмена 1С-1С в основном удобнее WEB-сервисы. Там проще - есть сервис и операции. Обратился к сервису, вызвал операцию - получил результат. HTTPсервис - это скорее для получения данных из вне.
10 Renat11111
 
16.11.19
00:15
Хочу вызвать метод POST пробовал вот так...

    Соединение = Новый HTTPСоединение("localhost",,"Admin","1");
        
    ЗаписьJSON = Новый ЗаписьJSON;    
    //Или в строку
    ЗаписьJSON.УстановитьСтроку();
    //Запись структуры
    Структура = Новый Структура;
    Структура.Вставить("Поле1", "Значение1");     
    Структура.Вставить("Поле2", "Значение2");
    Структура.Вставить("Поле3", "Значение3");
    ЗаписатьJSON(ЗаписьJSON, Структура);
        
    СериализованнаяСтрока = ЗаписьJSON.Закрыть();
    Запрос = Новый HTTPЗапрос("/BASE_KA_VNEDRENIE_RENAT/hs/Files");
    Запрос.УстановитьТелоИзСтроки(СериализованнаяСтрока);
    
    Результат = Соединение.ВызватьHTTPМетод("POST",Запрос);
    
    Сообщить("Нам вернули код " + Результат.КодСостояния);
11 Renat11111
 
16.11.19
00:16
результат тот же 404
12 Renat11111
 
16.11.19
00:17
вот POST метод

Функция ОбработатьФайлОбработатьФайлPOST(Запрос)
    Ответ = Новый HTTPСервисОтвет(200);
    //ПотокДанных = Запрос.ПолучитьТелоКакПоток();
    //Данные = РаботаВМоделиСервисаБТС.СтруктураИзПотокаJSON(ПотокДанных);
    Возврат Ответ;
КонецФункции
13 Chameleon1980
 
16.11.19
06:48
Если ты хочешь обмениваться строками создай (и не забудь потом опубликовать)
Веб сервис с функцией с параметром на входе типа строка и его вызывай
Тебе уже сказали выше.
Там ещё красивее получается
14 acht
 
16.11.19
10:45
15 Renat11111
 
16.11.19
11:46
(14) Многое статей в интернете очень старые (и в текущих условиях не работают) а примеры по этим статьям делал.... вообщем разобрался этот путь просто нужно пойти самому Используя в том числе и устаревшие статьи
16 Renat11111
 
16.11.19
11:47
(13) в типовой тоже передают JSON

    Словарь = УниверсальнаяИнтеграцияСловарь;
    ИдентификаторПравила = Запрос.ПараметрыURL.Получить("rule_id");
    КлючОбъекта = Запрос.ПараметрыURL.Получить("object_id");
    НомерОбласти = Запрос.ПараметрыURL.Получить("zone");
    Если НЕ СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(НомерОбласти) Тогда
        ВызватьИсключение Словарь.НомерОбластиДолженСодержатьТолькоЦифры();        
    КонецЕсли;
    
    УстановитьПривилегированныйРежим(Истина);
    Если РаботаВМоделиСервиса.РазделениеВключено() Тогда
        Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
            ВызватьИсключение Словарь.ОперацияНеМожетБытьВыполненаВРазделенномСеансе();    
        Иначе
            РаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, Число(НомерОбласти));
        Конецесли;
    Иначе
        ВызватьИсключение Словарь.ОперацияНеМожетБытьВыполненаВБазеСОтключеннымРазделением();
    КонецЕсли;
    
    ПотокДанных = Запрос.ПолучитьТелоКакПоток();
    Данные = РаботаВМоделиСервисаБТС.СтруктураИзПотокаJSON(ПотокДанных);
17 Renat11111
 
16.11.19
11:48
в типовом HTPP СЕРВИСЕ имею в виду
18 Chameleon1980
 
16.11.19
14:07
(16)это что? И зачем мне?
я просто дал совет.
Читайте про Web сервисы.
есть де даже демо конфы
19 Сергиус
 
16.11.19
14:33
(0)у тебя в HTTP сервисе 1с есть метод для обработки POST?
2 + 2 = 3.9999999999999999999999999999999...