2011-06-19 82 views
0

如何在HTTP GET或HTTP put请求中发送xml文件?我正在使用restlet框架。 我新来这个,根据我读过的,我应该序列化XML。 这样做后,我怎么能发送它的HTTP请求?Restlet:在HTTP请求中发送xml

+0

什么样的服务器软件? – Michas

+0

使用restlet,遵循休息的架构。 – SLA

+0

将此信息添加到您的问题的内容和标题。 – Michas

回答

1

即使你不使用一个结合了片断的库(我认为Restlet确实提供了一些简化),它很简单,就像你提到的一样,你需要的只是一个HTTP连接/请求,可能会消耗)XML。 所以除了Restlet特有的东西(希望其他人可以解释)之外,这里有一个“游击”的方法,只使用独立的部分。

要获得HTTP连接,您可以使用JDK功能(如果这样做不起作用,Apache HTTP客户端或async-http-client可以提供更多功能);是这样的:

URL url = new URL("http://myservice.mycompany.com:8080/path/to/service"); 
// configure settings here if/as necessary 
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
// if you need to post stuff, do: 
conn.setRequestMethod("POST"); 
// need to set content type too possibly 
conn.setDoOutput(true); // but only if you do POST stuff 
OutputStream out = conn.getOutputStream(); 
// here you would output XML request 
//... 
out.close(); 
// and now read response 
InputStream in = conn.getInputStream(); 
// and process it 
// ... 
in.close(); 

现在,作为生产/使用XML,您可以使用所有使用的输入/输出流读/写XML通常的工具。如果你喜欢数据绑定(来自XML的Java POJOs),JAXB是要走的路(javax.xml.bind。*); JDK 1.6及更高版本捆绑默认实现。

或者,您可以简单地使用Stax(javax.xml.stream。*)实现,例如Woodstox,通过简单调用读取/写入XML;对于奖励积分,请查看StaxMate,这可以相当简化这种风格。