从Restlet中的POST主体获取键值对

时间:2010-10-06 03:37:58

标签: java restlet

这可能是也可能不是最愚蠢的问题。

我正在使用Restlet。当客户端(我不控制)POST到URL时,我可以调用函数:

representation.getText();

以字符串形式生成以下示例键值对列表:

CallStatus=in-progress&CallerCountry=US&CalledZip=24013&ApiVersion=2008-08-01&CallerCity=ARLINGTON&CalledCity=ROANOKE&CallSegmentGuid=&CalledCountry=US&DialStatus=answered&CallerState=VA&CalledState=VA&CallerZip=22039

如何在Restlet中将这些数据作为键值对的映射来访问?

解答:

Form newForm = new Form(getRequest().getEntity());

1 个答案:

答案 0 :(得分:3)

查看restlet.org引用的这些示例(表格就像地图):

从网络表单获取值

Web表单实际上是发送到服务器的POST请求的实体,因此您可以通过request.getEntity()访问它。 有一个快捷方式允许列出所有输入字段:

Form form = request.getEntityAsForm();
for (Parameter parameter : form) {
  System.out.print("parameter " + parameter.getName());
  System.out.println("/" + parameter.getValue());
}

从查询中获取值

查询是请求资源的标识符(URI)的一部分。因此,您可以通过request.getResourceRef()。getQuery()访问它。 有一个快捷方式允许列出所有“key = value”对:

Form form = request.getResourceRef().getQueryAsForm();
for (Parameter parameter : form) {
  System.out.print("parameter " + parameter.getName());
  System.out.println("/" + parameter.getValue());
}