使用ContentExchange设置请求属性

时间:2013-03-14 19:27:17

标签: java jetty

有没有办法在ContentExchange对象中设置请求属性?到目前为止,我一直在使用setRequestContentSource(InputStream inputstream)方法将信息发送到请求正文中的服务器。但是,如果我想发送按字段名称分类的信息,例如ContentTitleAuthor等,我该怎么办?

我现在的代码粘贴在下面。谢谢你的帮助!

exchange.setRequestContentSource(new ByteArrayInputStream(
     serialized.getBytes("UTF-8")));

exchange.setRequestContentType("text/html");
exchange.setMethod("POST");
exchange.setURL(("http://localhost:8089/"));
client.send(exchange);

更确切地说,通过请求属性,我的意思是与request.setAttribute(“Name”,“ABC”)等效的东西。只有在这种情况下,才会通过ContentExchange对象发送请求。

1 个答案:

答案 0 :(得分:1)

啊,所以ServletRequest属性不是HTTP协议的一部分。 没有通过HTTP协议发送这些属性的标准方法。 实际上,servlet规范本身限制了它对特定于应用程序的信息的使用(例如将信息从过滤器传递到servlet)和SSL证书相关信息。

但是,使用standard POST and form data,通过exchange.setRequestContentType("multipart/form-data");并使用HttpServletRequest.getParameter("Content")等获取这些值。类似于从网络浏览器提交FORM的方式。这里的好处是,您甚至可以提供一个简单的HTML表单来测试我们的应用程序。

选择#2是以JSON或XML等标记发送数据,让服务器解析它。 这具有允许分层数据的益处。

如果您对此感兴趣,我建议您阅读有关REST的信息,也可以深入研究一下REST库,如JerseyRestletJAX-RS等标准。