Para o clj-http 3.13.1, comece pelas interfaces documentadas da biblioteca: as propriedades Java e o mapa do pedido. Uma preferência de proxy do ambiente de trabalho, por si só, não mostra quais parâmetros a aplicação forneceu.

Um pedido pode escolher explicitamente um intermediário HTTP:

(require '[clj-http.client :as http])

(http/get "https://example.com/"
          {:proxy-host "proxy.example.net"
           :proxy-port 8080})

Para uma política JVM comum, o clj-http documenta http.proxyHost e http.proxyPort para destinos HTTP, além de https.proxyHost e https.proxyPort para destinos HTTPS. A propriedade partilhada de exceção é http.nonProxyHosts.

As opções explícitas proxy-host e proxy-port substituem essa rota baseada em propriedades, incluindo http.nonProxyHosts. Para uma configuração de teste pública permitida sem credenciais de proxy, uma entrada HTTP da lista de proxies HTTP pode fornecer o host e a porta do pedido. O clj-http também expõe proxy-ignore-hosts para exclusões ao nível do pedido; o valor predefinido documentado contém localhost e 127.0.0.1.

Quando o intermediário exigir credenciais, forneça proxy-user e proxy-pass nas opções do pedido a partir da origem de credenciais da aplicação.

O SOCKS tem uma interface separada: crie um gestor com clj-http.conn-mgr/make-socks-proxied-conn-manager e passe-o como connection-manager. Reutilize e feche esse gestor de acordo com o ciclo de vida da carga de trabalho.

Artigos relacionados