使用URI调用函数clojure.xml / parse时,Clojure会执行HTTP GET请求来获取数据.但是,HTTP请求包含以下接受标头:
text/html,image/gif,image/jpeg,*; q=.2,*/*; q=.2
这不应该是application / xml吗?
解决方法
使用String参数(URI)调用clojure.xml / parse与此java代码类似:
SAXParserFactory.newInstance().newSAXParser().parse("<your_uri>",<instance of XMLHandler provided by Clojure>);
Clojure不执行HTTP GET请求.它只使用SAX解析器作为默认解析器. Sax解析器在内部创建XMLInputSource的实例,并将其一直传递给XMLEntityManager.类XMLEntityManager完成与打开连接和获取xml(或更像html)文档相关的所有工作:
URL location = new URL(expandedSystemId); URLConnection connect = location.openConnection(); ... skip ... stream = connect.getInputStream();
如果XmlInputSource是HTTPInputSource的实例,则XMLEntityManager设置HTTP请求属性.但是,XMLInputSource没有类似的功能(这是SAXParser的情况).
我想你可以帮助你将SAX解析器更改为其他一些实现.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。