这可能是也可能不是有史以来最愚蠢的问题。
我正在使用 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());
最佳答案
查看这些引用自 restlet.org 的示例(表单就像 map ):
从网络表单获取值
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());
}
关于java - 从 ReSTLet 中的 POST 正文获取键值对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3869345/