0_4_0.md

doc/release_notes/0_4_0.md
Last Update: 2024-12-18 13:38:28 +0000

0.4.0

  • Feature: SSH proxy plugin -> send requests over ssh gateway;

HTTPX.plugin(:"proxy/ssh").
          with_proxy(uri: "ssh://localhost:2222",
                 username: "root",
                 auth_methods: %w[publickey],
                 host_key: "ssh-rsa",
                 keys: %w[test/support/ssh/ssh_host_ed25519_key]).get(URI)
  • Feature: Faraday Adapter

  • refactoring: cookies plugin API simplification (this is a breaking change!):

session = HTTPX.plugin(:cookies)
session.with_cookies("a" => "b").get(...
session.cookies #=> session current cookie store, persists/updates session cookies as requests are processed
session.wrap do |session|
  session.get(..) #=> "Set-Cookie"
  ...
end #=> after this, cookie store resets to the state previous to wrap

Removed Session#cookie_store

client = HTTPX.plugin(:cookies)
redirect_response = client.get(URI) #=> ... 302 ... Set-Cookie: "blablalba" ...
# this sets the cookies
# GET .... Cookie: "blablabla" ....
response = client.get(URI) #=> ... 200 ...
# also, setting cookies:

client.cookies("a" => "b").get(URI) # ... Cookie: "a=b" ...

#also seamlessly integrates with redirect follows
client = HTTPX.plugins(:follow_redirects, :cookies)
response = client.get(URI) #=> ... 200 ...
  • refactoring: connection pool now thread-local, improves thread-safety;

  • bugfix: leaking dns query when passing IO object as option;

  • bugfix: now multiple different resolvers are supported;

  • support: JRuby is again supported (as usual, only latest stable is guaranteed)