java - 从 ReSTLet 中的 POST 正文获取键值对

标签 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());

最佳答案

查看这些引用自 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/

相关文章:

java - 如何限制对对象的访问?

java - 为什么我只能在 RESTlet 中将 Representation 转换为字符串一次?

java - 调用 super 需要 try/catch

java - 如何用java从pdf文件中提取结构化信息

java - 无法评估条件 [org.testcontainers.junit.jupiter.TestcontainersExtension]

java - android 中的计时器类还是处理程序计时器?

java - RestTemplate postforobject 在尝试发布到自定义对象时会导致错误

java - 从服务器资源调用 ReSTLet 客户端资源导致 HTTP 404 错误

java - 如何调试 ReSTLet?

java - Camel ReSTLet - 如何使用 SSL 公开服务