1

我正在尝试使用 java 的 URL 对象发出经过身份验证的请求。问题是@我的密码中有符号(现在不能更改它),所以当java尝试url.getUserInfo()它时,它会停在@密码中并搞砸我的请求。我尝试用它转义它,%40但从我在调试模式下看到的情况来看,它认为它只是一个角色%40,而不是一个@角色。

示例:http://user:p@ss@stackoverflow.com将用户信息作为user:p

4

2 回答 2

1

您可以注册一个能够在需要时提供凭据的身份验证器,而不是将用户名和密码放在 URL 中。

Authenticator.setDefault(new Authenticator() {
  protected PasswordAuthentication getPasswordAuthentication() {
    if("stackoverflow.com".equals(getRequestingHost()) {
      return new PasswordAuthentication("user", "p@ss".toCharArray());
    } else {
      return null;
    }
  }
});
于 2013-10-31T09:07:40.263 回答
0

?os_username=user&os_password=p@ss这是我发现的替代方法,因此您的请求将通过身份验证,如下所示:
http://stackoverflow.com/stuff?os_username=user&os_password=p@ss

于 2013-10-31T08:52:25.927 回答