0

finagleクライアントとして使用していrestます。でClientBuilderホストの範囲を指定しますが、リクエストにはホストで URL を設定する必要があります。リクエストでホストを指定せずに、finagle にホストを選択させるにはどうすればよいですか? ありがとう。

    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
4

1 に答える 1

2

finagle-httpモジュールを使用しているようです。を使用して、URL にホストなしでリクエストを作成することはできませんRequestBuilder。それでも、Request手動で構築できます (または、さらに使用するために独自の RequestBuilder を作成します)。

ただし、モジュールに切り替えることをお勧めしfinagle-httpxます ( https://github.com/twitter/finagle/tree/develop/finagle-httpx )。とは互換性がありませんfinagle-httpが、多くの API が改善されており、その中に URL のホストなしでリクエストを作成する機能があります。次に例を示します。

val client = Httpx.client.withTls("my.api")
  .newService("host1.my.api:443,host2.my.api:443")

val req = Request("/get")

val rep = client(req)
于 2015-08-21T10:08:02.517 に答える