0

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

我正在使用 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());
4

1 回答 1

3

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

从 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() 访问它。有一个快捷方式可以列出所有“key=value”对:

Form form = request.getResourceRef().getQueryAsForm();
for (Parameter parameter : form) {
  System.out.print("parameter " + parameter.getName());
  System.out.println("/" + parameter.getValue());
} 
于 2010-10-06T03:48:06.880 回答