|
Как правильно отлаживать http сервисы | ☑ | ||
---|---|---|---|---|
0
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 сервиса в браузере ? |
|||
1
falselight
27.06.20
✎
08:40
|
Ребят. Ну кто занимается http сервисами, подскажите по вопросу. Для меня это новое.
Не понял почему в браузере не работает отладка, что там не доделал я ? |
|||
2
Garykom
гуру
27.06.20
✎
09:19
|
fiddler
|
|||
3
Strogg
27.06.20
✎
12:22
|
Может быть, потому что боаузер не может отобразить твой ответ? Я, например, делал хттп сервис, который возвращает ответ в виде потока json. Без расширения хром его не схавал никак. Хоть параметры обпередавайся.
|
|||
4
acht
27.06.20
✎
12:29
|
(0) Там внизу, в секции "Дополнительные сведения", русским языком все написано, Андрей.
После ввода адреса в командную строку браузер посылает GET. А на что настроен твой сервис, отсюда не видно. По скриншоту postman можно предположить, что это POST. |
|||
5
pechkin
27.06.20
✎
12:42
|
лучше отлаживать как простую серверную процедуру
|
|||
6
falselight
27.06.20
✎
13:18
|
(4) Буду заниматься !!!
|
|||
7
Сияющий в темноте
27.06.20
✎
16:48
|
а что там отлаживать?
передачу json в обе стороны можно отладить только один раз. а разбор jsonв 1с можно делать уже просто,подставляч нужный запрос из файла,вместо ввзова сервиса. |
|||
8
falselight
27.06.20
✎
18:05
|
(7) Ну вот, буду заниматься.
Не знаком с http сервисами и json. Побочно ещё вот, про все узнаю. Буду делать.. Сейчас хочется что бы в браузере увидеть выполнение http сервиса. |
|||
9
Сияющий в темноте
27.06.20
✎
23:45
|
В браузере ты можешь увидеть только ответ,да и то не всегда в удобном виде.
|
|||
10
Sereja
28.06.20
✎
00:24
|
для web-сервисов очень нравится плагин к хрому wizdler
подойдет ли он к http сервису не в курсах |
|||
11
falselight
28.06.20
✎
05:58
|
(9)(10) Буду разбираться.
Ну так вот же простой ответ, Ок. http://joxi.ru/LmGbQ18CJOEeOr В Postman выводится. А в браузере нет. |
|||
12
ДенисЧ
28.06.20
✎
06:26
|
(11) Грех с утра ругаться, но
curl попробуй, что он тебе в заголовках покажет? |
|||
13
falselight
28.06.20
✎
07:02
|
Что такое curl ? Как его попробовать?
|
|||
14
ДенисЧ
28.06.20
✎
08:41
|
(13) в гугль не пробовал сходить?
|
|||
15
falselight
28.06.20
✎
15:44
|
(14) Конечно пробовал и сразу, но там что то сильно завихренное, по этому я отказался.
|
|||
16
ДенисЧ
28.06.20
✎
16:00
|
(15) Тогда это не твоё.
|
|||
17
zmaximka
28.06.20
✎
19:10
|
(11)
Попробуй помочь бразуеру указав тип содержимого Заголовки = Новый Соответствие; Заголовки.Вставить("Content-Type", "text/html;charset=utf-8"); Ответ.Заголовки = Заголовки; |
|||
18
acht
28.06.20
✎
19:28
|
(15) > там что то сильно завихренное, по этому я отказался.
Ну её, эту 1С, Андрей. Там всё такое. |
|||
19
zmaximka
28.06.20
✎
19:44
|
(о) ошибка из-за того что браузер посылает запрос GET, а хттп-сервис у тебя ожидает запрос POST
|
|||
20
acht
28.06.20
✎
19:56
|
(19) Про это ему часов 7 назад сказали
|
|||
21
MyNick
28.06.20
✎
21:04
|
(20) я об этом еще в прошлой ветке вчера наванговал)
Отсутствует отладка http в 1c |
|||
22
falselight
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); Рез = Запрос.Выполнить(); Если Не Рез.Пустой() Тогда Выборка = Рез.Выбрать(); Пока Выборка.Следующий() Цикл ЗаполнитьЗначенияСвойств(ДанныеКонтрагента, Выборка); КонецЦикла; Иначе Возврат ДанныеКонтрагента; КонецЕсли; Возврат ДанныеКонтрагента; КонецФункции // --------------------------------------------------------------------------------------------------------------------------------------------- |
|||
23
spectre1978
29.06.20
✎
07:22
|
Все не читал, про fiddler уже говорили?
|
|||
24
falselight
29.06.20
✎
07:25
|
(23) в (2) сказали
в что такое fiddler ? |
|||
25
falselight
29.06.20
✎
07:26
|
Понятно fiddler программа.
Ну так я Postman использую. Это аналог? Речь шла о том что не работает в браузере !!!! |
|||
26
sitex
naïve
29.06.20
✎
07:31
|
(25) Параметры POST как в браузере передаешь ?
|
|||
27
Мимохожий Однако
29.06.20
✎
07:31
|
(25) Так тебе отладить запрос или обязательно в браузере отладку запустить? "Вам шашечки или ехать?"
|
|||
28
falselight
29.06.20
✎
07:36
|
(26) нет, наверное не умею ещё
в браузере я передаю вот эту строку http://localhost/http/hs/ServIIS/getdata (27) В браузере хотел посмотреть и не понял почему работает. Я же написал, что все отлажено и работает через Postman . А как работает этот fiddler я не понял !!!!!!! |
|||
29
falselight
29.06.20
✎
07:38
|
(26) В Postman я тестирую так http://joxi.ru/a2XLyRxiDj67q2
И то это я увидел все в видео. А как тестировать в fiddler неизвестно. Так же как запустить в браузере не понятно. |
|||
30
sitex
naïve
29.06.20
✎
07:38
|
(28) Fiddler-е, да также работает. Просто в нем немного проще.
|
|||
31
sitex
naïve
29.06.20
✎
07:41
|
(28) Postmane - ты отправил post запросе с телом . Ответ получил. В брайзере ты просто отправил пустой POST получил ошибку. Все норм. Отправь GET с параметрами в адресной строке и выйдет тебе ответ.
|
|||
32
Галахад
гуру
29.06.20
✎
07:45
|
(0) Закомментируй строку:
Тело = Запрос.ПолучитьТелоКакСтроку(); |
|||
33
falselight
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); Ответ.УстановитьТелоИзСтроки(Результат); Возврат Ответ; |
|||
35
falselight
29.06.20
✎
08:58
|
(34) А в общем модуле не нужно отлаживать?
какая разница, не совсем понял. Тут вопрос в системном программировании у вас |
|||
36
sitex
naïve
29.06.20
✎
09:03
|
(33) Fiddler есть вкладка "Composer", далее во вкладке Parsed выбираешь метод get, post. Вводишь адрес сервиса. Ниже будет поле описание заголовков. При post либо файл выбираешь , либо руками json копируешь где написано request body и все жми Execute. Вкладка с ответом перейдет автоматом.
|
|||
37
Галахад
гуру
29.06.20
✎
09:12
|
(35) Например, в том что общие модули отлаживать проще.
|
|||
38
sitex
naïve
29.06.20
✎
09:26
|
(33) в чем принципиальность отладки через Браузер ? Можно конечно отправить post запрос через console браузера, курим -> fetch . Но это гемор еще тот.
|
|||
39
falselight
29.06.20
✎
13:48
|
Этот сервис http (22) сделан по методу POST, а если делать по методу GET
в чем там будет различие и разница???? Или по каким другим имеющимся в списке методам??? |
|||
40
sitex
naïve
30.06.20
✎
07:11
|
(39) Каждый метод под свои задачи. Расписывать все очень долго. Лучше найти спец-ю литературу и ознакомиться, коих в интее тьма.
|
|||
41
dezss
30.06.20
✎
08:21
|
(39) Да твою ж.
Почитай уже про GET, POST, PUT и т.д. Браузер всегда посылает GET. У тебя там обработки GET-запроса. Вот и все. У GET-а нет тела. Так что параметры надо передавать через строку запроса. |
|||
42
ДенисЧ
30.06.20
✎
08:23
|
(41) "Браузер всегда посылает GET"
Чегооооо? |
|||
43
MyNick
30.06.20
✎
08:38
|
(42) запрос через адресную строку - это GET, а что не так?
|
|||
44
ДенисЧ
30.06.20
✎
08:50
|
(43) А запрос через кнопку в форме - это post. Что не так?
|
|||
45
dezss
30.06.20
✎
17:34
|
(44) Запрос через кнопку на форме - это уже зависит от того, как обрабатывается это нажатие. Может там вообще просто "Hello world!!!" выведется.
|
|||
46
dezss
30.06.20
✎
17:34
|
(45) + и это не браузер посылает, а сайт.
|
|||
47
ДенисЧ
30.06.20
✎
17:39
|
(46) Шта?
|
|||
48
dezss
03.07.20
✎
16:59
|
(47) А что не так?
|
|||
49
Sysanin_1ц
06.07.20
✎
03:40
|
(0) Посмотри в ютьюб Низамов school. Там парень как раз на http сервисах в 1с специализируется и видосы выкладывает. Можно напрямую и вопрос задать
|
|||
50
unbred
06.07.20
✎
09:19
|
https://skr.sh/s31EDJ33xM1
за 4 года уже пора-бы научиться пользоваться гуглом. |
|||
51
hhhh
06.07.20
✎
09:29
|
(50) что-то вы чудите. Это же ливинг стар, у него стаж лет 15.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |