Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

5 Июль 2020, 16:35 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: HTTPS запрос из CALC BASIC  (Прочитано 271 раз)
0 Пользователей и 1 Гость смотрят эту тему.
quarantine85
Участник
**
Offline Offline

Сообщений: 10


« Стартовое сообщение: 8 Июнь 2020, 10:35 »

Добрый день!

Подскажите, пожалуйста, реализуемо ли следующее?
Из макроса BASIC сделать HTTPS запрос и получить оттуда XML или JSON.
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 61


WWW
« Ответ #1: 8 Июнь 2020, 11:59 »

Достаточно долго провозились с этим и пришли к выводу, что оптимальным решением является вызов из LO утилиты curl . Эта утилита в настоящее время есть на всех платформах, включая Win10.
Записан

Владимир.
economist
Форумчанин
***
Offline Offline

Сообщений: 1 206


« Ответ #2: 8 Июнь 2020, 12:47 »

Можно макросом вызвать py-скрипт на Python, разбор XML/JSON в нем реализован "из коробки"
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
quarantine85
Участник
**
Offline Offline

Сообщений: 10


« Ответ #3: 8 Июнь 2020, 12:49 »

Достаточно долго провозились с этим и пришли к выводу, что оптимальным решением является вызов из LO утилиты curl . Эта утилита в настоящее время есть на всех платформах, включая Win10.
А можете чуть подробнее как вызвать curl?
Записан
rami
Гуру
*******
Offline Offline

Пол: Мужской
Сообщений: 2 953


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #4: 8 Июнь 2020, 13:08 »

Из макроса BASIC сделать HTTPS запрос и получить оттуда XML или JSON.
Смотрите пример Парсинг валют.ods в этой теме (пример про XML, но JSON анологично)
« Последнее редактирование: 8 Июнь 2020, 13:10 от rami » Записан

sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 61


WWW
« Ответ #5: 8 Июнь 2020, 16:39 »

И пример вызова curl. Значение переменной url для GET-запроса, возвращающего текст в формате json, можно, естественно, менять.

Код:
Option Explicit
Sub CurlExample
  Dim  oPathSubstitution,  oSFA, url as String, fileJson as String, fileErr as String
 
  url="https://restcountries.eu/rest/v2/callingcode/372"  ' получение информации о стране ЕС по коду
 
  Set oSFA = createUnoService("com.sun.star.ucb.SimpleFileAccess")
  Set oPathSubstitution=CreateUnoService("com.sun.star.util.PathSubstitution")
  fileJson=oPathSubstitution.substituteVariables("$(home)/curlExample.json", true)
  fileErr=oPathSubstitution.substituteVariables("$(home)/curlExample.err", true)
  If oSFA.exists(fileJson) Then oSFA.kill(fileJson)
  If oSFA.exists(fileErr) Then oSFA.kill(fileErr)
 
  Shell "curl", 0, url & " -s -S  -H ""Content-type: application/json""  --stderr """ & ConvertFromUrl(fileErr) & """"  & _
           " -o """ & ConvertFromUrl(fileJson) & """", true
           
  If  oSFA.exists(fileJson) Then
     Msgbox "Результат запроса в файле " &  ConvertFromUrl(fileJson)
  ElseIf oSFA.exists(fileErr) Then
     Msgbox "Файл Json не сформирован. См. файл " &  ConvertFromUrl(fileErr), MB_ICONEXCLAMATION
  Else
     Msgbox "Ошибка при вызове Curl", MB_ICONSTOP
  End If     
 End Sub
Записан

Владимир.
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!