java - ReSTLet:在 HTTP 请求中发送 xml

标签 java xml http xml-serialization restlet

如何在 HTTP GET 或 HTTP put 请求中发送 xml 文件?我正在使用reSTLet框架。 我对此很陌生,根据我所读到的内容,我应该序列化 xml。 完成此操作后,如何在 HTTP 请求中发送它?

最佳答案

即使您不使用组合各个部分的库(我假设 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 的常用工具。如果您喜欢数据绑定(bind)(Java POJO 与 XML 之间的绑定(bind)),JAXB是要走的路(javax.xml.bind.*); JDK 1.6 及以上版本捆绑默认实现。

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

关于java - ReSTLet:在 HTTP 请求中发送 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404326/

相关文章:

android - 我想删除特定键中的长按模式弹出窗口

java - 在 TextView 上显示字符串不起作用

xml - 确定 XML 节点存在

http - Multi-Tenancy 与单租户

node.js - 使用 Node http 发布到 Google Analytics

java - 使用形象与品牌

java - spring boot应用程序无法从cmd启动如何从cmd启动它

java - Eclipse - JUnit - : "Launching MyMavenModule". NullPointerException 期间发生内部错误

java - 安装 RWeka 时出现问题

http - 注销请求应该设计为 GET 还是 POST?