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

HTTPОтвет - прошу в json, приходит в html

HTTPОтвет - прошу в json, приходит в html
Я
   mikecool
 
10.07.19 - 11:48
Ссылка http://<сервер>/<ресурс>/?date_from=01.07.2019%2000:00:00&id=<id>&format=json
в браузере возвращает json
в 1с:
    Соединение = Новый HTTPСоединение("<сервер>");
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("date_from", "01.07.2019%2000:00:00");
    Заголовки.Вставить("id", "<id>");
    Заголовки.Вставить("format", "json");

    Запрос = Новый HTTPЗапрос("<ресурс>", Заголовки);
    ИмяФайла = ПолучитьИмяВременногоФайла("json");
    Результат = Соединение.Получить(Запрос, ИмяФайла);
    Данные = Результат.ПолучитьТелоКакСтроку();
Код состояния = 200, тип результата - html, тело - не то, что запрошено
Пробовал в запрос всю строку пихать, без заголовков - тот же результат.
Что я делаю не так?
и еще вопрос - а чем просматривать http запросы, которые уходят из 1с? желательно что-то для чайников )
 
 
   PiotrLoginov
 
1 - 10.07.19 - 11:53
тут скорее надо спрашивать у тех, кто сервис ваял.
чем смотреть запросы/ответы - не подскажу. но сейчас этого добра... от плагинов для браузеров до самостоятельных утилит.
   Cyberhawk
 
2 - 10.07.19 - 11:55
Всю строку в запрос и надо пихать. Но без базового УРЛа.
   Александр Б
 
3 - 10.07.19 - 11:59
(0) см (2)
date_from, id и format - это не заголовки. Это параметры, которые необходимо передавать вместе с "ресурсом".
   PiotrLoginov
 
4 - 10.07.19 - 11:59
кстати, да ...
Запрос = Новый HTTPЗапрос("<ресурс>/?date_from=01.07.2019%2000:00:00&id=<id>&format=json", Заголовки);
   mikecool
 
5 - 10.07.19 - 12:20
запихнул, но результат не поменялся (
   mikecool
 
6 - 10.07.19 - 12:21
+5 ессно без урла пихал )
   zva
 
7 - 10.07.19 - 12:36
Описание api есть?
Заголовки.Вставить("Content-Type", "application/json");
Можно тем же Postman посмотреть что уходит
   mikecool
 
8 - 10.07.19 - 12:55
(7) описание получить можно, но сложно
попробую, спасибо
   mikecool
 
9 - 10.07.19 - 12:59
+8 не помогло, сохраняется хтмл, буду запрашивать описание апи
   butterbean
 
10 - 10.07.19 - 12:59
(6) а "%20" на пробел заменил?
   Вафель
 
11 - 10.07.19 - 12:59
(7) это не обязательно ты же не передаешь, а получаешь
   butterbean
 
12 - 10.07.19 - 13:00
(0) если запрос в браузере работает, то и корректно составленный (4) должен работать 100%
   Вафель
 
13 - 10.07.19 - 13:00
может дата нужна в другом формате
20191231T111234
   Garykom
 
14 - 10.07.19 - 13:02
(9) Покажи что ты запихнул (код покажи кусок), 101% что где то скосячил
   mikecool
 
15 - 10.07.19 - 13:09
(10) заменил, выполнение Соединение.Получить в отладке замерло на несколько секунд(как будто передача была), но в результате снова html
(14) результат на данный момент
        Соединение = Новый HTTPСоединение("<урл>"); 
    Запрос = Новый HTTPЗапрос("<ресурс>?date_from=01.07.2019 00:00:00&id=<id>&format=json");
    ИмяФайла = ПолучитьИмяВременногоФайла("json");
    Результат = Соединение.Получить(Запрос, ИмяФайла);
    Данные = Результат.ПолучитьТелоКакСтроку();

<ресурс> начинается и заканчивается на "/" - может на обратный слеш надо заменить?
   mikecool
 
16 - 10.07.19 - 13:10
+15 не, обратные сразу дают код ответа 404
   Garykom
 
17 - 10.07.19 - 13:14
(15) Убери конечный / в ресурсе
   Garykom
 
18 - 10.07.19 - 13:14
(17)+ А начинаться да должен на /
   Garykom
 
19 - 10.07.19 - 13:16
И проверь у тебя случаем не httpS требуется?
Что в ответе внутри html?
   Garykom
 
20 - 10.07.19 - 13:17
(19)+ Просто браузеры автоматом умеют делать редирект с http на https если сервер приказал, 1С это вручную надо
   Cyberhawk
 
21 - 10.07.19 - 13:17
Что внутри пришедшего html'а?
   mikecool
 
22 - 10.07.19 - 21:37
все как всегда банально - после ошибочного переноса параметров в заголовки и возвращения оных обратно в строку запроса я забыл перед параметрами слеш добавить, а сервер к этому оказался чуствителен
   PiotrLoginov
 
23 - 11.07.19 - 01:46
Все хорошо, что хорошо кончается


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