Apache HttpResponse 获取未格式化的字符串而不是 XML

Apache HttpResponse getting unformatted String instead of XML

我在 servlet 上有一些 Java 代码来执行 LDAP 查找:

HttpClient client = new DefaultHttpClient();
HttpGet getRequest = new HttpGet(theURL);
HttpResponse getResponse = client.execute(getRequest);
InputStream in = getResponse.getEntity().getContent();
String encoding = "UTF-8";
String body = IOUtils.toString(in, encoding);

在 Java 脚本中实现时,响应是 XML 风格的字符串,类似于

<result>
<firstName>Bob</firstName>
<lastName>Smith</lastName>
<email>bobsmith@example.com</email>
</result>

这很容易解析。然而,在 Java 中,我得到 "BobSmithbobsmith@example.com",值之间没有分隔符。 LDAP 必须 return 必要的信息,因为我通过 JS 实现获得了我需要的信息;有没有办法从 HttpResponse 对象中得到可解析的结果?

发送 "accept" header 请求。可能服务器默认发送纯文本。

getRequest.setHeader(HttpHeaders.ACCEPT, "application/xml");

[或者如果这不起作用]

getRequest.setHeader(HttpHeaders.ACCEPT, "text/xml");