Как установить 'no proxy' в запросе http clojure, как мы делаем в curl? - PullRequest
0 голосов
/ 07 января 2019

Я хочу поразить API (запрос GET) в clojure внутри модуля открытой смены с помощью «no-proxy», но это дает мне 404 (ресурс не найден), хотя я прошел правильный заголовок (для авторизации внутри модуля открытой смены). Тот же запрос дает 200 командой curl с nroroxy в терминале pod. Пожалуйста, предложите.

Использование Clojure API - clj-http.client

Ниже приведен код Clojure, который не работает (дает 404):

(defn get-toggles []   
   (let [options {:headers {:x-jwt-payload "valid-value-passed"}}
         response (client/get "correct-url" {:proxy-ignore-hosts "*" :proxy-port "*"} options)]))

Ниже приведен керл внутри терминала pod, который работает нормально (только с nroroxy): curl -i --noproxy "*" "any-correct-url" -H "x-jwt-payload :valid-value"

Примечание: без "noproxy" мы получим 401, поэтому мы его используем.

1 Ответ

0 голосов
/ 07 января 2019

Глядя на исходный код, кажется, нет способа создать запрос, который бы вообще не использовал прокси.

Однажды я столкнулся с той же проблемой и в итоге использовал Jsoup , java-библиотеку для выполнения http-запросов и анализа HTML. Я не использовал функцию парсинга HTML, я отправлял запросы к Rest Api, но Api Jsoup хорош и удобен в использовании из Clojure. Например:

(ns something
  (import
   org.jsoup.Jsoup
   java.net.Proxy
   java.lang.Thread))

(defn api-call [url]
  (->
   (Jsoup/connect url)
   (.proxy (Proxy/NO_PROXY))
   (.ignoreContentType true)
   (.get)
   (.body)
   (.text)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...