Как мне пройти аутентификацию на прокси-сервере из clj-apache-http?

StackOverflow https://stackoverflow.com/questions/2541934

  •  23-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь начать работу, используя 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)

Проблема в том, что мой прокси (squid) требует аутентификации.Как мне «вставить» свое имя пользователя/пароль в эту библиотеку?

Спасибо!

Нет правильного решения

Другие советы

Добавление следующего в мой словарь заголовков помогло:

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

Как сказал Мак, это также можно реализовать с помощью фильтра, но фильтр preemptive-basic-auth-filter не будет работать, поскольку он отправляет заголовки для WWW-авторизации вместо прокси-авторизации.

clj-apache-http имеет фильтр preemptive-basic-auth-filter, который вы можете использовать.Он поддерживает комбинированные строки имени пользователя и пароля в формате «имя:пароль».Использование функции недостаточно документировано, но ее можно найти. здесь.Пример (не проверялся):

(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")))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top