通过文档生成器提交发布请求

发布于 2024-11-06 08:05:20 字数 468 浏览 3 评论 0原文

Document xmlDocument = builder.parse(request.getInputStream());

这里的请求是以POST方式发送的; 但我无法在 servlet 中处理请求。 抛出以下异常,

org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:98)

任何人都可以建议我答案吗?

提前致谢。

Document xmlDocument = builder.parse(request.getInputStream());

Request here is sent as POST;
But I am unable to get the process the request in the servlet.
Below exception is thrown

org.xml.sax.SAXParseException: Content is not allowed in prolog.
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:98)

Can any one please suggest me the answer.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

°如果伤别离去 2024-11-13 08:05:20
Document xmlDocument = builder.parse(request.getInputStream());

这段Java代码用于解析XML。

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
this.xmlHttp.open("POST",url, this.async);
this.xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
this.xmlHttp.send("sessionid=324trt");

此浏览器 JavaScript 代码发送 application/x-www-form-urlencoded 数据。有效负载 sessionid=324trt 不是 XML。

读取参数的正确方法是 通过参数映射

String sessionid = request.getParameter("sessionid");
Document xmlDocument = builder.parse(request.getInputStream());

This Java code is for parsing XML.

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
this.xmlHttp.open("POST",url, this.async);
this.xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
this.xmlHttp.send("sessionid=324trt");

This browser JavaScript code sends application/x-www-form-urlencoded data. The payload sessionid=324trt is not XML.

The correct way to read the parameter would be via the parameter map:

String sessionid = request.getParameter("sessionid");
虫児飞 2024-11-13 08:05:20

执行 @McDowell 上面建议的操作,并将您的 xml 作为 POST 参数发布。然后读取 servlet 中的参数并执行以下操作 --

String postedXml = request.getParameter("postedXml");
StringReader reader = new StringReader( postedXml );
InputSource inputSource = new InputSource( reader );
Document doc = builder.parse( inputSource );
reader.close();

Do what @McDowell suggests above and post your xml as a POST parameter. Then read the parameter in your servlet and do this --

String postedXml = request.getParameter("postedXml");
StringReader reader = new StringReader( postedXml );
InputSource inputSource = new InputSource( reader );
Document doc = builder.parse( inputSource );
reader.close();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文