Java 从RESTlet中的POST正文获取键值对

Java 从RESTlet中的POST正文获取键值对,java,restlet,Java,Restlet,这可能是也可能不是有史以来最愚蠢的问题 我正在使用Restlet。当客户端(我不控制)发布到URL时,我可以调用以下函数: representation.getText() 它生成以下字符串形式的键值对示例列表: CallStatus=in-progress&CallerCountry=US&CalledZip=24013&ApiVersion=2008-08-01&CallerCity=ARLINGTON&CalledCity=ROANOKE&C

这可能是也可能不是有史以来最愚蠢的问题

我正在使用Restlet。当客户端(我不控制)发布到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());

查看以下引用的示例(表单就像地图):

从web表单获取值 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()访问它。 有一个快捷方式,可以列出所有“键=值”对:


查看以下引用的示例(表单就像地图):

从web表单获取值 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()访问它。 有一个快捷方式,可以列出所有“键=值”对:


太棒了,“getEntityAsForm()”就是我要找的。文档中说它已经贬值,将在2.1版中删除,我认为现在“接受”的方式是:新表单(getRequest().getEntity())啊,好主意!我必须再次查看我们的代码,确保我们使用的是更新的表单。祝你好运getEntityAsForm现在已不受欢迎,我一直在寻找“getEntityAsForm()”。文档中说它已经贬值,将在2.1版中删除,我认为现在“接受”的方式是:新表单(getRequest().getEntity())啊,好主意!我必须再次查看我们的代码,确保我们使用的是更新的表单。祝你好运getEntityAsForm现在已不推荐使用