当前位置: 首页 > 面试题库 >

Apache HttpClient(4.1及更高版本):如何进行基本身份验证?

郑嘉悦
2023-03-14
问题内容

如何为httpClient库的默认客户端添加基本身份验证?我已经看到了使用它们的示例client.getCredentialProvider(),但是我认为所有这些方法都适用于库版本4.0.1或3.x。是否有一个新的示例如何执行此操作?非常感谢。


问题答案:

我们使用进行基本身份验证HttpClient,但不使用CredentialProvider。这是代码:

HttpClient client = factory.getHttpClient(); //or any method to get a client instance
Credentials credentials = new UsernamePasswordCredentials(username, password);
client.getState().setCredentials(AuthScope.ANY, credentials);

更新:
注释中指出,该方法在API的3.x版本中HttpClient.getState()可用。但是,较新版本的API不支持该方法。



 类似资料:
  • 我一直试图用restTemplate传递基本身份验证,但它甚至没有将身份验证头传递给服务器。下面是我使用的bean定义` `

  • 问题内容: 我目前正在尝试使用HTTP和HTTPS访问URL。我尝试访问的URL需要基本身份验证。使用HTTP可以正常工作,但是使用HTTPS则不能。我不确定是否需要使用HTTPS添加其他内容。该URL应该返回给我的文本是键值格式,可以加载到对象中。 这是到目前为止我尝试过的代码。 这是证书类别 当我删除所有证书代码(以及证书代码)时的错误消息: 问题答案: 问题似乎是由于在更改连接的和实例之前打

  • 问题内容: 在(带有)中,我尝试使用以下语句通过基本身份验证访问我的网页: 但是Google Chrome浏览器在控制台中向我发出以下警告: [弃用]其URL包含嵌入式凭据(例如https://user:pass@host/)的子资源请求被阻止。有关更多详细信息,请参见https://www.chromestatus.com/feature/5669008342777856。 在标记的链接中提到该

  • 问题内容: 我相信我可以使用基本身份验证,但是我不确定如何保护资源,以便仅在用户登录时才能访问它们。 我的登录资源是这样的: 我用以下方式签署用户: 题 假设用户使用端点从浏览器或本机移动应用程序前端登录。那么如何我可以保护另一个端点,比方说,它 要求用户要signedin 问题答案: 尝试实现REST时有两件事。一个是身份验证(似乎已经可以使用),另一个是授权(我相信您的问题是)。 我之前在dr

  • 我正在使用pullToRefresh库: 但是如果android版本大于4.0,列表无法移动。 LogCat显示模拟器警告,但它们不相关。 如何解决移动列表的问题?

  • 问题内容: 从HttpClient 4.3开始,我一直在使用HttpClientBuilder。我正在连接到具有基本身份验证的REST服务。我将凭据设置如下: 但是,这不起作用(我正在使用的REST服务返回401)。怎么了? 问题答案: 从此处的 抢先身份验证 文档中: http://hc.apache.org/httpcomponents-client- ga/tutorial/html/aut