Apache HttpResponse获取未格式化的String而不是XML

时间:2018-06-15 16:11:53

标签: java apache servlets ldap httpresponse

我在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);

在Javascript中实现时,响应是

行的XML样式字符串
<result>
<firstName>Bob</firstName>
<lastName>Smith</lastName>
<email>bobsmith@example.com</email>
</result>

哪个很容易解析。但是,在Java中,我得到“BobSmithbobsmith@example.com”,值之间没有分隔符。 LDAP必须返回必要的信息,因为我得到了JS实现所需的内容;有没有办法从HttpResponse对象获得可解析的结果?

1 个答案:

答案 0 :(得分:1)

发送&#34;接受&#34;带有请求的标头。也许服务器默认发送纯文本。

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

[或者,如果那不起作用]

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