Как использовать простой HTTP-прокси с клиентом Reactor Netty? - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь использовать простой HTTP-прокси для внешнего кэширования ответов. Я попробовал следующий фрагмент:

public static void main(String[] args) {
  HttpClient httpClient = HttpClient.builder().options(httpOptions -> {
    httpOptions.proxy(proxyOptions -> proxyOptions
        .type(Proxy.HTTP)
        .address(InetSocketAddress.createUnresolved("localhost", 7000))
    );
  }).build();
  String url = "http://httpbin.org/get";
  HttpClientResponse response = httpClient.get(url).block();
  System.out.println(response == null ? "null" : response.status().code());
}

... но в результате клиент запускается командой CONNECT, создающей туннель TCP. Когда я работаю с curl, я делаю следующее:

curl "http://httpbin.org/get" -x "localhost:7000"

... и он просто выдает обычный HTTP-запрос к прокси.

Мой вопрос: как мне использовать Raector-Netty для выдачи обычного (не на CONNECT) запроса против прокси?

1 Ответ

0 голосов
/ 21 января 2019
    ReactorClientHttpConnector connector = new ReactorClientHttpConnector(options ->
            options.httpProxy(addressSpec -> {
                return addressSpec.host("http://proxy_server").port(proxy_port); }));

    webClient = WebClient.builder()
                         .clientConnector(connector)
                         .baseUrl(baseUrl)
                         .build();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...