# 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`.

```ruby
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`.


```ruby

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
```