首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从clj-apache-http向代理服务器进行身份验证?

如何从clj-apache-http向代理服务器进行身份验证?
EN

Stack Overflow用户
提问于 2010-03-30 07:31:37
回答 2查看 463关注 0票数 2

我正在尝试使用http://github.com/rnewman/clj-apache-http开始跑步

代码语言:javascript
复制
(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)需要身份验证。我如何将我的用户名/密码“输入”到这个库中?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2010-03-31 04:56:19

将以下内容添加到我的headers字典中确实起到了作用:

代码语言:javascript
复制
"Proxy-Authorization" (str "Basic "
                             (base64/encode-str "username:password"))

就像Mac说的--这也可以用一个过滤器来实现--但是preemptive-basic-auth-filter不会起作用,因为它发送的是WWW-Authorization的报头,而不是Proxy-Authorization。

票数 2
EN

Stack Overflow用户

发布于 2010-03-30 13:53:57

clj-apache-http有一个可以使用的preemptive-basic-auth-filter。支持"name: password“形式的用户名/密码组合字符串。该函数的用法没有很好的文档记录,但可以在here中找到。示例(未测试):

代码语言:javascript
复制
(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")))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2541934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档