我正在尝试使用HTTPClient将大量请求发布到使用基本身份验证保护的Web服务。虽然我使用的是ThreadSafeClientConnManager,但Apache HTTPClient的基本身份验证实现似乎不是线程安全的。有时请求标头不包含授权元素,导致401。 有多种线程使用基本身份验证的常用方法或最佳实践吗?
答案 0 :(得分:1)
您确定这是线程安全问题吗?如果您使用的是java.net.Authenticator,它会缓存名称/密码,除非您这样做:
AuthCacheValue.setAuthCache(new AuthCacheImpl());
AuthCacheValue和AuthCacheImpl来自sun.net.www.protocol.http。我在扩展Authenticator
的类的构造函数中执行此操作答案 1 :(得分:1)
我最近遇到了同样的问题。 存在此问题:https://issues.apache.org/jira/browse/HTTPCLIENT-1168 你有两个选择: