需要从java发送xml请求并解析xml响应

需要从java发送xml请求并解析xml响应,java,xml,request,response,Java,Xml,Request,Response,我需要从java独立类发送一个xml请求。我需要发送的xml请求的格式为- http://url/query.do? Request=<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Request initialTime="2011-03-11T16:40Z"> <Query>Java</Query></Request> 但我得到了一个IOException-服务器返回

我需要从java独立类发送一个xml请求。我需要发送的xml请求的格式为-

http://url/query.do?
Request=<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Request initialTime="2011-03-11T16:40Z">
<Query>Java</Query></Request>
但我得到了一个
IOException-服务器返回了HTTP响应代码:505,用于sun.net.www.protocol.HTTP.HttpURLConnection.getInputStream的URL。

当点击浏览器时,这个url返回一个xml响应,我需要使用STAX解析该xml

请任何人提供一些如何实现上述目标的想法

有人可以提供一些示例代码或更正我的代码,以便我能够形成xml请求并解析xml响应。请帮忙

谢谢


swati

建议使用apachehttp客户机库(它有许多可以在您的案例中使用的特性)

您还可以使用ApacheTikaAPI

请考虑正在发布的URL的大小。请参阅


使用ApacheHTTP客户端,您可以选择使用POST方法而不是GET方法,这样您就可以在请求中发布相当大的文件。

这个问题与此相关

错误代码505表示以下内容:


服务器不支持或拒绝支持请求消息中使用的HTTP协议版本。服务器表示无法或不愿意使用与客户端相同的主版本完成请求。

符号“?”、“&”和“=”在URL中被视为参数和值分隔符,因此请尝试先对XML进行编码

String xmlRequest = "url/query.do?Request=" + URLEncoder.encode("your xml", "UTF-8");
URL url = new URL(xmlRequest);
...

浏览器对每个请求执行URL编码。这就是它工作的原因。

xml请求是什么?Request=java请显示一个简短但完整的程序。当问题很可能出在您使用的URL中时,“类似这样的东西”并没有太大帮助。将XML放入URL看起来确实很奇怪。。。它通常会在请求正文中。嗨,Jon,我已经编辑了我的代码部分。见“立即建议”。
URL url = new URL(xmlRequest);
     URLConnection conn = (URLConnection)url.openConnection();
     //conn.connect();
     BufferedReader in = new BufferedReader(
                    new InputStreamReader(
                    conn.getInputStream()));
String xmlRequest = "url/query.do?Request=" + URLEncoder.encode("your xml", "UTF-8");
URL url = new URL(xmlRequest);
...