Чтобы он работал так, как вы хотите, вы должны создать собственный HttpRequester
, позже создать его экземпляр с новым HttpClient
, используя HttpClientConfiguration
с конфигурацией вашего прокси, вот рабочий код:
Класс MyCustomRequester:
public class MyCustomRequester implements HttpRequester {
private final HttpClient httpClient;
public MyCustomRequester(HttpClient httpClient) {
this.httpClient = httpClient;
}
@Override
public CompletableFuture<HttpResponse> performRequestAsync(HttpRequest request) {
return ... httpClient.execute(...) ...;
}
@Override
public void close() throws IOException {
...
}
}
основной метод тестирования:
public static void main(String[] args) {
SearchConfig config = new SearchConfig
.Builder("undefined", "undefined").build();
HttpClientConfiguration httpClientConfiguration = new HttpClientConfiguration();
httpClientConfiguration.setProxyHost("host");
httpClientConfiguration.setProxyPort(2020);
HttpClient httpClient = // create a new httpClient with custom httpClientConfiguration;
...
SearchClient client = new SearchClient(config, myCustomRequester);
}
Если вы хотите внедрить свой собственный HttpClient, вы можете внедрить его конструктором во все клиентские классы библиотеки . Последний должен реализовать интерфейс HttpRequester. В этом случае вам больше не нужна зависимость algoliasearch- apache.
Подробнее см. Эту документацию