Pergunta

Estou tentando levantar uma corrida usando http://github.com/rnewman/clj-apache-http

(http/get (java.net.URI. url)
        :headers {"User-Agent" user-agent}
        :parameters (http/map->params
                 {:default-proxy (http/http-host :host "localhost"
                                 :port 8888)})
        :as :string)

O problema é que meu proxy (Squid) requer autenticação. Como faço para "alimentar" meu nome de usuário/senha nesta biblioteca?

Obrigado!

Nenhuma solução correta

Outras dicas

Adicionando o seguinte ao meu dicionário de cabeçalhos fez o truque:

"Proxy-Authorization" (str "Basic "
                             (base64/encode-str "username:password"))

Como Mac disse-isso também pode ser implementado com um filtro-mas o filtro preventivo-Basic-Authter não funciona porque envia os cabeçalhos para a autorização www em vez de autorização de proxy.

O CLJ-Apache-HTTP possui um filtro preventivo-Basic-Auth-Filter que você pode usar. Ele suporta strings combinados de nome de usuário / senha deste formulário "Nome: senha". O uso da função não está bem documentado, mas pode ser encontrado aqui. Exemplo (não testado):

(http/get (java.net.URI. url)
    :headers {"User-Agent" user-agent}
    :parameters (http/map->params
             {:default-proxy (http/http-host :host "localhost"
                             :port 8888)})
    :as :string
    :filters ((preemptive-basic-auth-filter "name:password")))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top