I am using finagle
as rest
client. In ClientBuilder
I specify a range of hosts, but the request requires setting a url with host.
How can I avoid specifying host in the request and let finagle choose one ?
Thanks.
val client = ClientBuilder().hosts("host1:81,host2:82").codec(Http()).build()
val request = RequestBuilder()
// .url("http://host1/get") // dont want to specify host
// .url("/get") // MalformedURLException: no protocol
.buildGet()
var resp = client(request) // sent to host specified by url
It looks like you're using
finagle-http
module. It's not possible to build request without host in URL usingRequestBuilder
. Still, you can constructRequest
manually (or create your own RequestBuilder for further use)I'd recommend however switching to
finagle-httpx
module (https://github.com/twitter/finagle/tree/develop/finagle-httpx). It's not compatible withfinagle-http
, but it has lots of API improvements and the ability to create requests without host in URL in among them, for example: