如何为Unirest代理设置凭据?

5

Unirest的代理设置文档提到使用以下代码:

Unirest.setProxy(new HttpHost("127.0.0.1", 8000));

由于我使用的代理需要身份验证,因此我需要指定凭据,但我不知道如何操作。

1个回答

11

我解决了这个问题,通过设置自定义客户端代替代理。

HttpClientBuilder clientBuilder = HttpClientBuilder.create();


  CredentialsProvider credsProvider = new BasicCredentialsProvider();

  credsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(USERNAME, PASSWORD));

  clientBuilder.useSystemProperties();

  clientBuilder.setProxy(new HttpHost(HOST, PORT));
            clientBuilder.setDefaultCredentialsProvider(credsProvider);
clientBuilder.setProxyAuthenticationStrategy(new ProxyAuthenticationStrategy());


 Lookup<AuthSchemeProvider> authProviders = RegistryBuilder.<AuthSchemeProvider>create()
                    .register(AuthSchemes.BASIC, new BasicSchemeFactory())
                    .build();
            clientBuilder.setDefaultAuthSchemeRegistry(authProviders);


    Unirest.setClient(clientBuilder.build());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接