我们正在使用 Java 从 Cisco ips(SDEE 服务器)中提取数据。这是一个正常的网络请求,我们正在使用 HttpsURLConnection。响应采用 XML 格式。
我们有一个 UI(Web 应用程序)可以触发作业来拉取数据;我们还有一个独立的实用程序,它也可以触发作业以提取数据。因此,从 sdee 服务器检索数据的代码在这两种情况下都是相同的。使用 Quartz 安排作业,尽管此信息在这里无关紧要。
现在的问题 - 当从 UI 触发作业时,我们得到预期的 xml,没有问题。但是当使用该实用程序触发作业时,我们会得到相同的 xml,但在其标签中带有命名空间。
<['http://example.org/2003/08/sdee']:sd:evIdsAlert eventId='123' vendor='Cisco' severity='low'><['http://example.org/2003/08/sdee']:sd:originator>
[' http://example.org/2003/08/sdee '] - 这是我们得到的额外的东西。我们不希望在 XML 中出现这种情况。
由于代码相同,我怀疑可能是某些环境设置影响了响应,但我不知道是什么。
部分代码(我们正在使用),仅供参考:
// get the connection
connection = (HttpsURLConnection) url.openConnection();
// get the reader
new BufferedReader(new InputStreamReader(connection.getInputStream()));
// read response line by line and dump it to the file
代码非常简单 - 使用 HTTP(s) 提取数据的标准代码。