
70

GitHub - zweifisch/ob-http: make http request within org-mode babel
source link: https://github.com/zweifisch/ob-http
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.org
ob-http
http request in org-mode babel, requires curl
#+BEGIN_SRC http :pretty GET https://api.github.com/repos/zweifisch/ob-http/languages Accept: application/vnd.github.moondragon+json #+END_SRC #+RESULTS: : { : "Emacs Lisp": 8170 : }
setup
To use ob-http
in an org-babel
source block, the http language must be enabled in the custom org-babel-load-languages
alist. Alternatively, running the following snippet during initialization will enable the mode.
(org-babel-do-load-languages 'org-babel-load-languages '((emacs-lisp . t) (http . t)))
options
optioncurlexample:proxy
-x
:proxy localhost:8118
:noproxy
--noproxy *
N/A:cookie-jar
--cookie-jar
:cookie-jar username
:cookie
--cookie
:cookie username
:max-time
--max-time
default is 10
:user
--user
:user admin:passwd
:pretty
N/A:pretty
use Content-Type
, to overwrite :pretty json
:select
N/A:select path
path will be passed to jq for json or pup for html or xmlstarlet for xml:get-header
N/A:get-header X-Subject-Token
:curl
N/A:curl --insecure --compressed
additional arguments for curl:resolve
--resolve
:resolve example.com:80:127.0.0.1,example.com:443:127.0.0.1
examples
set arbitrary header
#+BEGIN_SRC http :pretty GET http://httpbin.org/user-agent User-Agent: ob-http #+END_SRC #+RESULTS: : { : "user-agent": "ob-http" : }
json
#+BEGIN_SRC http :pretty POST http://httpbin.org/post Content-Type: application/json { "key": "value" } #+END_SRC #+RESULTS: #+begin_example { "url": "http://httpbin.org/post", "json": { "key": "value" }, "headers": { "User-Agent": "curl/7.35.0", "Host": "httpbin.org", "Content-Type": "application/json", "Content-Length": "18", "Accept": "*/*" }, "form": {}, "files": {}, "data": "{ \"key\": \"value\"}", "args": {} } #+end_example
form submit
#+BEGIN_SRC http :pretty PATCH http://httpbin.org/patch key=value&foo=value #+END_SRC #+RESULTS: #+begin_example { "url": "http://httpbin.org/patch", "origin": "116.227.144.38", "json": null, "headers": { "User-Agent": "curl/7.35.0", "Host": "httpbin.org", "Content-Type": "application/x-www-form-urlencoded", "Content-Length": "19", "Accept": "*/*" }, "form": { "key": "value", "foo": "value" }, "files": {}, "data": "", "args": {} } #+end_example
variable
#+HEADER: :var name="ob-http" #+HEADER: :var password="secret" #+BEGIN_SRC http :select .json POST http://httpbin.org/post Content-Type: application/json { "auth": { "name": "${name}", "password": "${password}" } } #+END_SRC #+RESULTS: : { : "auth": { : "password": "secret", : "name": "ob-http" : } : }
use properties
supported headers:
- pretty
- proxy
- noproxy
- cookie
- schema
- host
- port
- user
- max-time
* api test :PROPERTIES: :header-args: :var token="secret" :host httpbin.org :pretty :END: #+BEGIN_SRC http POST /post Content-Type: application/json X-Auth-Token: ${token} #+END_SRC #+RESULTS: #+begin_example { "url": "http://httpbin.org/post", "json": null, "headers": { "X-Auth-Token": "secret", "User-Agent": "curl/7.35.0", "Host": "httpbin.org", "Content-Type": "application/json", "Accept": "*/*" }, "form": {}, "files": {}, "data": "", "args": {} } #+end_example
files
#+BEGIN_SRC http :file zweifisch.jpeg GET https://avatars.githubusercontent.com/u/447862?v=3 #+END_SRC
#+RESULTS: [[file:zweifisch.jpeg]]
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK