我在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>[email protected]</email>
</result>


这很容易解析。但是,在Java中,我得到“ [email protected]”,值之间没有分隔符。 LDAP必须返回必要的信息,因为我可以通过JS实现获得所需的信息。有没有一种方法可以从HttpResponse对象获得可分析的结果?

最佳答案

发送带有请求的“接受”标头。也许服务器默认发送纯文本。

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


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

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

08-26 22:05