Defina ambas as rutas durante a inicialización, co autenticador de IAM que realmente se lle deu ao servizo:

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);

Aquí authenticator e service son os obxectos existentes da aplicación. Aplique a configuración antes de que comece a obtención do token ou as solicitudes ao servizo, coa verificación normal de certificados activada. Cando a aplicación poida usar un punto de conexión HTTP público para ambos destinos, hai enderezos candidatos na lista de proxies HTTP.

As dúas asignacións cobren solicitudes distintas. authenticator.setProxy cobre a ruta do token de IAM; service.configureClient aplica o proxy ao transporte do servizo. Configurar unha non establece a ruta da outra.

Ante un fallo, identifique o host indicado na solicitude fallida. Obter o token correctamente reduce o problema á ruta do servizo; pero non demostra que esa ruta recibise as súas opcións de proxy.

HttpConfigOptions procede de IBM Java SDK Core. Ao adaptar un exemplo antigo de ConversationService, use o paquete Core e a xeración de servizo elixidos pola aplicación en lugar de copiar unha clase de rede antiga específica do servizo.

Artigos relacionados