|
Получить JSON через HTTP-запрос | ☑ | ||
---|---|---|---|---|
0
nemoxp
06.05.19
✎
12:33
|
Здравствуйте!
Платформа 8.3. Пытаюсь получить JSON через http-запрос, прошу помощи. Как только не писал - ничего не выходит. Один из вариантов: WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1"); WinHttp.Open("GET", "https://vpn.bisoft.fi:44304/login?username=log_expeditor&password=log_expeditor1&command=query&qry_name=stock%20report%20extended&date%20min=2019-01-01T00:00:00.000&date%20max=2019-06-01T00:00:00.000", 0); WinHttp.Send(); WinHttp.SetTimeouts(15000, 15000, 15000, 15000); Результат = WinHttp.ResponseText(); Выдает ошибку: Ошибка при вызове метода контекста (Send) WinHttp.Send(); по причине: Произошла исключительная ситуация (WinHttp.WinHttpRequest): A connection with the server could not be established Если скопировать адрес в браузер - все работает. |
|||
1
arsik
гуру
06.05.19
✎
12:42
|
(0) Зачем использовать "COMОбъект("WinHttp.WinHttpRequest.5.1")"? Есть же стандартный в 1С встроенный. Примеров навалом.
|
|||
2
nemoxp
06.05.19
✎
12:49
|
(1) Например "HTTPСоединение"?
мой пример: Соединение = Новый HTTPСоединение("vpn.bisoft.fi:44304",443); Запрос = Новый HTTPЗапрос("/login?username=log_expeditor&password=log_expeditor1&command=query&qry_name=stock%20report%20extended&date%20min=2019-01-01T00:00:00.000&date%20max=2019-06-01T00:00:00.000"); Ответ = Соединение.Получить(Запрос); Ошибка: Ошибка при вызове метода контекста (Получить) Ответ = Соединение.Получить(Запрос); по причине: Ошибка работы с Интернет: Server returned nothing (no headers, no data) Напоминаю, что если вводить в строку адреса браузера, то все работает: https://vpn.bisoft.fi:44304/login?username=log_expeditor&password=log_expeditor1&command=query&qry_name=stock%20report%20extended&date%20min=2019-01-01T00:00:00.000&date%20max=2019-06-01T00:00:00.000 |
|||
3
Вафель
06.05.19
✎
12:54
|
(2) а где ты указал, что это https ?
|
|||
4
lubitelxml
06.05.19
✎
12:55
|
(2) про заголовки не забывай
|
|||
5
nemoxp
06.05.19
✎
12:59
|
(3) Соединение = Новый HTTPСоединение("vpn.bisoft.fi:44304",443);
443 - типа https (4) какие заголовки указать? |
|||
6
dezss
06.05.19
✎
13:01
|
(5) https - это защищенной соединение.
и порт у тебя вроде не 443, а 44304 |
|||
7
dezss
06.05.19
✎
13:02
|
(6) + Новый HTTPСоединение(Сервер,Порт,,,,ТаймАут,Новый ЗащищенноеСоединениеOpenSSL)
|
|||
8
NWsFF
06.05.19
✎
13:07
|
Соединение = Новый HTTPСоединение("vpn.bisoft.fi:44304",,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/login?username=log_expeditor&password=log_expeditor1&command=query&qry_name=stock%20report%20extended&date%20min=2019-01-01T00:00:00.000&date%20max=2019-06-01T00:00:00.000"); Ответ = Соединение.Получить(Запрос); все работает |
|||
9
nemoxp
06.05.19
✎
13:18
|
(8) Большое спасибо!
|
|||
10
nemoxp
06.05.19
✎
13:54
|
Добавил сохранение в файл:
Соединение = Новый HTTPСоединение("vpn.bisoft.fi:44304",,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/login?username=log_expeditor&password=log_expeditor1&command=query&qry_name=stock%20report%20extended&date%20min=2019-01-01T00:00:00.000&date%20max=2019-06-01T00:00:00.000"); Режим = РежимДиалогаВыбораФайла.Сохранение; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.Фильтр = НСтр("ru = 'Файл'") + "(*.txt)|*.txt"; ДиалогОткрытияФайла.Заголовок = "Выберите путь и имя файла"; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; Если ДиалогОткрытияФайла.Выбрать() Тогда Ответ = Соединение.Получить(Запрос, ДиалогОткрытияФайла.ПолноеИмяФайла); КонецЕсли; Сохраняет в ANSI, а нужно, видимо, UTF-8. Не подскажите как указать кодировку? |
|||
11
Мимохожий Однако
06.05.19
✎
14:56
|
(10) И где здесь сохранения в файл? СП смотрел?
|
|||
12
Ёпрст
06.05.19
✎
15:04
|
(10) смотри через HttpОтвет и там ПолучитьТелоКакСтроку с указанием кодировки
|
|||
13
nemoxp
06.05.19
✎
15:20
|
(12) БлагоДарю! Все получилось!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |