使用身份验证从REST服务读取XML

时间:2017-08-04 08:27:33

标签: java xml rest authentication

我试图通过

从REST服务中读取xml
Authenticator.setDefault(new Authenticator()
    {
      @Override
      protected PasswordAuthentication getPasswordAuthentication()
      {
        return new PasswordAuthentication(username, password.toCharArray());
      }
    });

Document doc = builder.parse(restString);

其中builderDocumentBuilder

不幸的是, 似乎没有授权请求:在Wireshark中,我看不到附加到GET请求的凭据。 curl中的相同请求有效(并且在http请求中有凭据)。

我的错误是什么?或者我应该以完全不同的方式联系REST服务?

1 个答案:

答案 0 :(得分:0)

如果使用com.sun.jersey:jersey-bundle:1.19

,以下操作方法
  public static String getHttpResult(String url, String user, String password)
      throws IOException
  {

    Client client = Client.create();
    try
    {
      client.addFilter(new HTTPBasicAuthFilter(user, password));

      try
      {
        WebResource wrget = client.resource(url);
        return wrget.get(String.class);
      }
      catch (UniformInterfaceException e)
      {
        throw new IOException("Fehler beim Zugriff auf " + url + " mit User "
            + user, e);

      }
    }
    finally
    {
      if (client != null)
        client.destroy();
    }
  }

这为您提供了XML作为字符串。如果将字符串转换为InputSource

InputSource is = new InputSource(new StringReader(httpResult));
doc = builder.parse(is);

你得到了你想要的东西。