Вход | Регистрация
 

Как правильно отлаживать http сервисы

Как правильно отлаживать http сервисы
Я
   falselight
 
27.06.20 - 08:21
Произвожу исследование http сервисов. По одному видео сделал один. Настроил отладку.
Тест производиться в тестовой конфигурации, пустой. на SQL Server. Для отладки используется приложение Postman.

http://joxi.ru/gmvaZ43tvjaLGr

http://joxi.ru/LmGbQ18CJOEeOr

Программа Postman выдает результат отработки этого сервиса http://joxi.ru/D2PlR54CkNgp02

отладка работает.

В Postman сервис проверяется по этой строке localhost/http/hs/ServIIS/getdata

ВОПРОС!!!! Почему в веб браузере нет результата выполнения этого http сервиса ?

http://joxi.ru/xAe7lqJig4Dp0m

Как что бы увидеть результат выполнения http сервиса в браузере  ?
   falselight
 
1 - 27.06.20 - 08:40
Ребят. Ну кто занимается http сервисами, подскажите по вопросу. Для меня это новое.

Не понял почему в браузере не работает отладка, что там не доделал я ?
   Garykom
 
2 - 27.06.20 - 09:19
fiddler
   Strogg
 
3 - 27.06.20 - 12:22
Может быть, потому что боаузер не может отобразить твой ответ? Я, например, делал хттп сервис, который возвращает ответ в виде потока json. Без расширения хром его не схавал никак. Хоть параметры обпередавайся.
   acht
 
4 - 27.06.20 - 12:29
(0) Там внизу, в секции "Дополнительные сведения", русским языком все написано, Андрей.

После ввода адреса в командную строку браузер посылает GET. А на что настроен твой сервис, отсюда не видно. По скриншоту postman можно предположить, что это POST.
   pechkin
 
5 - 27.06.20 - 12:42
лучше отлаживать как простую серверную процедуру
   falselight
 
6 - 27.06.20 - 13:18
(4) Буду заниматься !!!
   Сияющий в темноте
 
7 - 27.06.20 - 16:48
а что там отлаживать?
передачу json в обе стороны можно отладить только один раз.
а разбор jsonв 1с можно делать уже просто,подставляч нужный запрос из файла,вместо ввзова сервиса.
   falselight
 
8 - 27.06.20 - 18:05
(7) Ну вот, буду заниматься.
Не знаком с http сервисами и json.
Побочно ещё вот, про все узнаю.
Буду делать..

Сейчас хочется что бы в браузере увидеть выполнение http сервиса.
   Сияющий в темноте
 
9 - 27.06.20 - 23:45
В браузере ты можешь увидеть только ответ,да и то не всегда в удобном виде.
   Sereja
 
10 - 28.06.20 - 00:24
для web-сервисов очень нравится плагин к хрому wizdler
подойдет ли он к http сервису не в курсах
   falselight
 
11 - 28.06.20 - 05:58
(9)(10) Буду разбираться.

Ну так вот же простой ответ, Ок. http://joxi.ru/LmGbQ18CJOEeOr

В Postman выводится. А в браузере нет.
   ДенисЧ
 
12 - 28.06.20 - 06:26
(11) Грех с утра ругаться, но


curl попробуй, что он тебе в заголовках покажет?
   falselight
 
13 - 28.06.20 - 07:02
Что такое curl ? Как его попробовать?
   ДенисЧ
 
14 - 28.06.20 - 08:41
(13) в гугль не пробовал сходить?
   falselight
 
15 - 28.06.20 - 15:44
(14) Конечно пробовал и сразу, но там что то сильно завихренное, по этому я отказался.
   ДенисЧ
 
16 - 28.06.20 - 16:00
(15) Тогда это не твоё.
   zmaximka
 
17 - 28.06.20 - 19:10
(11)
Попробуй помочь бразуеру указав тип содержимого
Заголовки = Новый Соответствие; 
Заголовки.Вставить("Content-Type", "text/html;charset=utf-8");
Ответ.Заголовки = Заголовки;
   acht
 
18 - 28.06.20 - 19:28
(15) >  там что то сильно завихренное, по этому я отказался.
Ну её, эту 1С, Андрей. Там всё такое.
   zmaximka
 
19 - 28.06.20 - 19:44
(о) ошибка из-за того что браузер посылает запрос GET, а хттп-сервис у тебя ожидает запрос POST
   acht
 
20 - 28.06.20 - 19:56
(19) Про это ему часов 7 назад сказали
   MyNick
 
21 - 28.06.20 - 21:04
(20) я об этом еще в прошлой ветке вчера наванговал)
Отсутствует отладка http в 1c
   falselight
 
22 - 29.06.20 - 06:21
(21) Ну да, запрос POST

http://joxi.ru/1A5MePyuG8MZ8A

А как правильно делать? Делал по видео. Почему там использовали POST?

Через Postman отладка работает.

(17) Пока ничего не поменялось. Но в Postman работает http://joxi.ru/a2XLyRxiDj67q2 .


вот, весь код http сервиса


// ---------------------------------------------------------------------------------------------------------------------------------------------

Функция getdatapost(Запрос)
    Ответ             = Новый HTTPСервисОтвет(200);
    СтруктураОтвета = Новый Структура("result, data");
    СтруктураОшибки = Новый Структура("error, text", Ложь, ""); 
    //

    Заголовки = Новый Соответствие; 
    Заголовки.Вставить("Content-Type", "text/html;charset=utf-8");
    Ответ.Заголовки = Заголовки;    
    //

    Попытка
        json   = Запрос.ПолучитьТелоКакСтроку();
        Чтение = Новый ЧтениеJSON;
        Чтение.УстановитьСтроку(json);
        ЗапросСтруктура      = ПрочитатьJSON(Чтение);
        СтруктураОтвета.data = ПолучитьДанныеКонтрагентаПоИНН(ЗапросСтруктура);
    Исключение
        СтруктураОшибки.error = Истина;
        СтруктураОшибки.text  = ОписаниеОшибки();
    КонецПопытки;
    //

    //Ответ.УстановитьТелоИзСтроки("Ок");

    //

    СтруктураОтвета.result = СтруктураОшибки;
    ТекстОтвета            = СформироватьJSON(СтруктураОтвета);
    Ответ.УстановитьТелоИзСтроки(ТекстОтвета, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
    Возврат Ответ;
КонецФункции
// ---------------------------------------------------------------------------------------------------------------------------------------------

Функция СформироватьJSON(Структура)
    ЗаписьJSON = Новый ЗаписьJSON;    
    ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет, , Истина));
    НастройкиСериализацииJSON                          = Новый НастройкиСериализацииJSON;
    НастройкиСериализацииJSON.ВариантЗаписиДаты      = ВариантЗаписиДатыJSON.ЛокальнаяДатаСоСмещением;
    НастройкиСериализацииJSON.ФорматСериализацииДаты = ФорматДатыJSON.ISO;
    ЗаписатьJSON(ЗаписьJSON, Структура, НастройкиСериализацииJSON);
    Возврат ЗаписьJSON.Закрыть(); 
КонецФункции
// ---------------------------------------------------------------------------------------------------------------------------------------------

Функция ПолучитьДанныеКонтрагентаПоИНН(Данные)
    ДанныеКонтрагента = Новый Структура("ФИО, ИНН", "", "");
    Запрос          = Новый Запрос;
    Запрос.Текст = "
        |ВЫБРАТЬ
        |    Контрагенты.Наименование КАК ФИО,
        |    Контрагенты.ИНН          КАК ИНН
        |ИЗ
        |    Справочник.Контрагенты КАК Контрагенты
        |ГДЕ
        |    Контрагенты.ИНН = &ИНН";
    Запрос.УстановитьПараметр("ИНН", Данные.inn);
    Рез = Запрос.Выполнить();
    Если Не Рез.Пустой() Тогда
        Выборка = Рез.Выбрать();
        Пока Выборка.Следующий() Цикл
            ЗаполнитьЗначенияСвойств(ДанныеКонтрагента, Выборка);
        КонецЦикла;
    Иначе
        Возврат ДанныеКонтрагента;
    КонецЕсли;
    Возврат ДанныеКонтрагента;
КонецФункции
// ---------------------------------------------------------------------------------------------------------------------------------------------
   spectre1978
 
23 - 29.06.20 - 07:22
Все не читал, про fiddler уже говорили?
   falselight
 
24 - 29.06.20 - 07:25
(23) в (2) сказали

в что такое fiddler ?
   falselight
 
25 - 29.06.20 - 07:26
Понятно fiddler программа.

Ну так я Postman использую. Это аналог?

Речь шла о том что не работает в браузере !!!!
   sitex
 
26 - 29.06.20 - 07:31
(25) Параметры POST как в браузере передаешь ?
   МимохожийОднако
 
27 - 29.06.20 - 07:31
(25) Так тебе отладить запрос или обязательно в браузере отладку запустить? "Вам шашечки или ехать?"
   falselight
 
28 - 29.06.20 - 07:36
(26) нет, наверное не умею ещё

в браузере я передаю вот эту строку http://localhost/http/hs/ServIIS/getdata

(27) В браузере хотел посмотреть и не понял почему работает.

Я же написал, что все отлажено и работает через Postman .

А как работает этот fiddler я не понял !!!!!!!
   falselight
 
29 - 29.06.20 - 07:38
(26) В Postman я тестирую так http://joxi.ru/a2XLyRxiDj67q2

И то это я увидел все в видео. А как тестировать в fiddler неизвестно.

Так же как запустить в браузере не понятно.
   sitex
 
30 - 29.06.20 - 07:38
(28) Fiddler-е, да также работает.  Просто в нем немного проще.
 
 Рекламное место пустует
   sitex
 
31 - 29.06.20 - 07:41
(28) Postmane - ты отправил post запросе с телом . Ответ получил. В брайзере ты просто отправил пустой POST получил ошибку. Все норм. Отправь GET с параметрами в адресной строке и выйдет тебе ответ.
   Галахад
 
32 - 29.06.20 - 07:45
(0) Закомментируй строку:
Тело = Запрос.ПолучитьТелоКакСтроку();
   falselight
 
33 - 29.06.20 - 08:38
(30) Ну и как также?
ввел куда то строку, куда увидел, нажимаю GO! И ничего. Я открыл его и не понял как так же.

(31) Я не совсем понимаю как это будет. Если код сервиса, как в (22) то какого вида строку нужно вставить в браузере, если в Postman она такая?

http://localhost/http/hs/ServIIS/getdata

Вы разбираетесь , очевидно знаете какая она будет. Подскажите пожалуйста?

(32) А где такая строка в (22) ? Если там закомментировать вот эту,
json   = Запрос.ПолучитьТелоКакСтроку();

то будет ошибка 

{HTTPСервис.HTTPServerIIS.Модуль(15,27)}: Переменная не определена (json)
        Чтение.УстановитьСтроку(<<?>>json); (Проверка: Сервер)
   Галахад
 
34 - 29.06.20 - 08:47
(33) Фиг знает где в (22). Я писал для кода в (0).

А по (22), нафига писать какой-то код в модуле сервиса, его потом отлаживать надо.
Проще так:

    СтрокаXML = Запрос.ПолучитьТелоКакСтроку();
    Результат = НекийОбщийМодуль.НекаяФункция(СтрокаXML);
    Ответ = Новый HTTPСервисОтвет(200);
    Ответ.УстановитьТелоИзСтроки(Результат);
    
    Возврат Ответ;
   falselight
 
35 - 29.06.20 - 08:58
(34) А в общем модуле не нужно отлаживать?

какая разница, не совсем понял. Тут вопрос в системном программировании у вас
   sitex
 
36 - 29.06.20 - 09:03
(33) Fiddler есть вкладка "Composer", далее во вкладке Parsed выбираешь метод get, post. Вводишь адрес сервиса. Ниже будет поле описание заголовков. При post либо файл выбираешь , либо руками json копируешь где написано request body и все жми Execute. Вкладка с ответом перейдет автоматом.
   Галахад
 
37 - 29.06.20 - 09:12
(35) Например, в том что общие модули отлаживать проще.
   sitex
 
38 - 29.06.20 - 09:26
(33) в чем принципиальность отладки через Браузер ? Можно конечно отправить post запрос через console браузера, курим -> fetch . Но это гемор еще тот.
   falselight
 
39 - 29.06.20 - 13:48
Этот сервис http (22) сделан по методу POST, а если делать по методу GET

в чем там будет различие и разница????

Или по каким другим имеющимся в списке методам???
   sitex
 
40 - 30.06.20 - 07:11
(39) Каждый метод под свои задачи. Расписывать все очень долго. Лучше найти спец-ю литературу и ознакомиться, коих в интее тьма.
   dezss
 
41 - 30.06.20 - 08:21
(39) Да твою ж.
Почитай уже про GET, POST, PUT и т.д.
Браузер всегда посылает GET. У тебя там обработки GET-запроса. Вот и все.
У GET-а нет тела. Так что параметры надо передавать через строку запроса.
   ДенисЧ
 
42 - 30.06.20 - 08:23
(41) "Браузер всегда посылает GET"
Чегооооо?
   MyNick
 
43 - 30.06.20 - 08:38
(42) запрос через адресную строку - это GET, а что не так?
   ДенисЧ
 
44 - 30.06.20 - 08:50
(43) А запрос через кнопку в форме - это post. Что не так?
   dezss
 
45 - 30.06.20 - 17:34
(44) Запрос через кнопку на форме - это уже зависит от того, как обрабатывается это нажатие. Может там вообще просто "Hello world!!!" выведется.
   dezss
 
46 - 30.06.20 - 17:34
(45) + и это не браузер посылает, а сайт.
   ДенисЧ
 
47 - 30.06.20 - 17:39
(46) Шта?
   dezss
 
48 - 03.07.20 - 16:59
(47) А что не так?
   Sysanin_1ц
 
49 - 06.07.20 - 03:40
(0) Посмотри в ютьюб Низамов school. Там парень как раз на http сервисах в 1с специализируется и видосы выкладывает. Можно напрямую и вопрос задать
   unbred
 
50 - 06.07.20 - 09:19
https://skr.sh/s31EDJ33xM1
за 4 года уже пора-бы научиться пользоваться гуглом.
   hhhh
 
51 - 06.07.20 - 09:29
(50) что-то вы чудите. Это же ливинг стар, у него стаж лет 15.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.