IBM Java SDK: настройка прокси для IAM и вызовов службы
Задайте прокси аутентификатора IAM и HttpConfigOptions службы до того, как любой из них начнёт отправлять запросы.
Задайте оба маршрута при инициализации, используя тот аутентификатор IAM, который действительно передан службе:
import java.net.InetSocketAddress;
import java.net.Proxy;
import com.ibm.cloud.sdk.core.http.HttpConfigOptions;
var proxy = new Proxy(
Proxy.Type.HTTP,
new InetSocketAddress("proxy.example.net", 8080));
authenticator.setProxy(proxy);
var options = new HttpConfigOptions.Builder()
.proxy(proxy)
.build();
service.configureClient(options);Здесь authenticator и service — существующие объекты приложения. Примените настройки до начала получения токена или запросов к службе, при включённой обычной проверке сертификатов. Если приложение может использовать публичную конечную точку HTTP для обоих назначений, подходящие адреса есть в списке HTTP-прокси.
Два назначения охватывают разные запросы. authenticator.setProxy охватывает путь токена IAM; service.configureClient применяет прокси к транспорту службы. Настройка одного не создаёт маршрут другого.
При сбое определите хост, указанный в неудачном запросе. Успешное получение токена сужает проблему до пути службы; но не доказывает, что этот путь получил свои параметры прокси.
HttpConfigOptions происходит из IBM Java SDK Core. Адаптируя старый пример ConversationService, используйте пакет Core и поколение службы, выбранные приложением, а не копируйте старый сетевой класс, специфичный для службы.