httpx 0.9.0 has been released.
HTTPX.get("https://gitlab.com/honeyryderchuck/httpx
<https://gitlab.com/honeyryderchuck/httpx>")
HTTPX is an HTTP client library for the Ruby programming language.
Among its features, it supports:
* HTTP/2 and HTTP/1.x protocol versions
* Concurrent requests by default
* Simple and chainable API
* Proxy Support (HTTP(S), Socks4/4a/5)
* Simple Timeout System
* Lightweight by default (require what you need)
And also:
* Compression (gzip, deflate, brotli)
* Authentication (Basic Auth, Digest Auth)
* Expect 100-continue
* Multipart Requests
* Cookies
* HTTP/2 Server Push
* H2C Upgrade
* Automatic follow redirects
These are the announcements since the last update:
# 0.9.0
## Features
### Multiple requests with specific options
You can now pass a third element to the "request element" of an array to
`.request`.
requests = [
[:post, "https://url/post", { form: { foo: "bar" } }],
[:post, "https://url/post", { form: { foo: "bar2" } }]
]
HTTPX.request(requests)
# or, if you want to pass options common to all requests
HTTPX.request(requests, max_concurrent_requests: 1)
### HTTPX::Session#build_request
`HTTPX::Session::build_request` is now public API from a session. You can
now build requests before you send them. These request objects are still
considered somewhat "internal", so consider them immutable and **do not
rely on its API**. Just pass them forward.
Note: this API is only available for instantiated session, so there is no
`HTTPX.build_request`.
HTTPX.wrap do |http|
requests = [
http.build_request(:post, "https://url/post", { form: { foo: "bar" } }),
http.build_request(:post, "https://url/post", { form: { foo: "bar2" } })
]
http.request(requests)
# or, if you want to pass options common to all requests
http.request(requests, max_concurrent_requests: 1)
end