Старе питання, так ... Але на випадок, якщо хтось гугл це; інший варіант - використання Org Babel і ob-http... (Можна встановити з melpa .)
"" org-babelВи можете створити .orgфайл, що містить " http" кодові блоки. Коли ці блоки будуть оцінені, вони зроблять HTTP-запит і повернуть відповідь як результат.
Якщо ці блоки мають #+NAME:атрибут " ", ви можете використовувати їх результати в будь-якому іншому org-babelблоці. Це дозволяє отримати досить акуратне грамотне програмування, використовуючи результати HTTP-запитів.
Наприклад, ось невеликий документ Org, який демонструє запит HTTP та аналізує повернений JSON в Ruby:
* The request
The following is the example request shown on [[https://github.com/zweifisch/ob-http][ob-http's Github page]]...
It isn't anything fancy, but it is a REST API request, and returns
JSON, so it works for the sake of this demonstration:
#+NAME:ob-languages
#+BEGIN_SRC http :pretty
GET https://api.github.com/repos/zweifisch/ob-http/languages
#+END_SRC
#+RESULTS:
: {
: "Emacs Lisp": 7034
: }
Notice how this has a "=#+NAME:=" attribute? This is a name we can use
in other =org-babel= blocks. (As you will see below)
* Using the request
Now that I have an =http= request in an org block with a name... Lets
write something in a completely different language and use our HTTP
request's response:
#+BEGIN_SRC ruby :var langs=ob-languages
require 'json'
JSON.parse(langs)['Emacs Lisp']
#+END_SRC
#+RESULTS:
: 7034
The =:var= keyword allowed me to assign the "=langs=" variable in the
Ruby block to the result of the =ob-languages= block [[The request][above]].
This didn't have to be in Ruby, this could have been any language,
including another =http= block.
Ось як це виглядає в org-mode:

При натисканні C-c C-cна нижній блок (Ruby) автоматично буде оцінено верхній на предмет залежності (Це :varбіт у заголовку блоку.). Це буде означати, що httpзапит робиться спочатку, а потім результати передаються Ruby для подальшої обробки.
Ви можете зробити це з якомога більше блоків і з якоюсь кількістю мов.
Якщо це відповідає вашим потребам, ob-httpпотрібно трохи встановити ручне налаштування після встановлення, щоб він працював. (Не хвилюйтеся, це не так вже й багато)
Після встановлення ob-httpвам потрібно налаштувати дві змінні:, org-src-lang-modesі org-babel-load-languages.
Отже, запустивши M-x customize-variable, ви можете налаштувати кожну, щоб вона включала в себе наступне:
org-src-lang-modes: Ви хочете налаштувати цю змінну, щоб вона включала ще одне відображення мови, щоб ви могли вставити ще одне значення до кінця списку:
String: http
Symbol: ob-http
Тоді ви можете C-x C-sзберегти це налаштування.
org-babel-load-languages: Ви хочете додати ще один елемент до списку включених orgмов. " http".
Хоча вам може знадобитися додати його до списку вручну, якщо параметр не є можливими параметрами, ви можете зробити це, натиснувши "Стан" та вибравши " :", щоб показати вираз Lisp ... Тоді ви додали б лише наступне перед останніми дужками, що закриваються:
(http . t)
Після цього швидкий C-x C-sі M-x org-reloadмає бути все, що вам потрібно ..!