httpx 0.10.2 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)
* Streaming Requests
* Authentication (Basic Auth, Digest Auth)
* Expect 100-continue
* Multipart Requests
* Cookies
* HTTP/2 Server Push
* H2C Upgrade
* Automatic follow redirects
* International Domain Names
These are the announcements since the last update:
# 0.10.1
## Improvements
### URL-encoded nested params
url encoder now supports nested params, which is a standard of rack-based
frameworks:
HTTPX.post("https://httpbin.org/post", form: { a: { b: 1 }, c: [2, 3] })
# a[b]=1&c[]=2&c[]=3
This encoding scheme is now the standard for URL-encoded request bodies,
query params, and `:multipart` plugin requests.
### Socks4 IPv6 addresses
HTTPX supports IPv6 Socks4 proxies now. This support is restricted to
rubies where `IPAddr#hton` is implemented though, so you are encouraged to
upgrade.
## More verbose HTTP Errors
`HTTPX::Response#raise_for_status` was raising exceptions for client/server
HTTP errors codes (4xx/5xx). However, only the status code was part of the
message.
From now on, both headers and the responnse payload will also appear, so
expected more verbosity, but also more meaningful information.
## Bugfixes
* HTTP/2 and HTTP/1.1 exhausted connections now get properly migrated into
a new connection;
* HTTP/2 421 responses will now correctly migrate the connection and
pendign requests to HTTP/1.1 (a hanging loop was being caused);
* HTTP/2 connection failed with a GOAWAY settings timeout will now return
error responses (instead of hanging indefinitely);
* Non-IP proxy name-resolving errors will now move on to the next available
proxy in the list (instead of hanging indefinitely);
* Non-IP DNS resolve errors for `native` and `https` variants will now
return the appropriate error response (instead of hanging indefinitely);
## Chore
* `HTTPX.plugins` is now officially deprecated (use `HTTPX.plugin` instead);
# 0.10.2
## Bugfixes
Support for nested params in multipart forms introduced a bug where
top-level params weren't being spread out correctly in the request body.