我试图通过
从REST服务中读取xmlAuthenticator.setDefault(new Authenticator()
{
@Override
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(username, password.toCharArray());
}
});
Document doc = builder.parse(restString);
其中builder
是DocumentBuilder
。
不幸的是, 似乎没有授权请求:在Wireshark中,我看不到附加到GET请求的凭据。 curl中的相同请求有效(并且在http请求中有凭据)。
我的错误是什么?或者我应该以完全不同的方式联系REST服务?
答案 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);
你得到了你想要的东西。