java - 如何获取 HTML 中的 REST 参数

标签 java android rest jersey

我创建了一个 REST Web 服务(及其 Android 上的客户端),它可以创建用户并使用户登录。但这对于 Android 来说没问题。因为我的 URL 没有在 Android 中公开。

我的 REST 根路径是:http://localhost:8080/Mysite/rest/site

我有某些 REST 方法,例如:

@Path("/create")
@POST
@Produces({MediaType.TEXT_HTML,MediaType.APPLICATION_XML})
@Consumes(MediaType.APPLICATION_FORM_URLENCODED){}

@Path("/{user}/createmessage")
@POST
@Produces({MediaType.TEXT_HTML,MediaType.APPLICATION_XML})
@Consumes(MediaType.APPLICATION_FORM_URLENCODED){}

在第二种方法中可以看到参数{user}@Path("/{user}/createmessage") 。 从 Android 调用时,REST 会处理这一点,因为它将取代用户名 {user}在 HTTP Post 请求中。

现在我需要制作 WebClient。我的表单如下:

<form action="http://localhost:8080/MySite/rest/site/{user}/createmessage" method="post">
<label for="title">Message Title : </label>
<input name="title" />
<label for="message">Message : </label>
<input name="message"/>

这肯定是这一行有错误:
<form action="http://localhost:8080/MySite/rest/site/{user}/createmessage" method="post">

{user}无法通过 HTML 传输。

如何从 HTML 中的 REST Web 服务获取 REST 参数?

最佳答案

{user} 是指用作参数的动态路径段的表示法。 JAX-RS 使用它来表示 URI 中的参数名称和位置。它不打算按原样传递,而是替换为查询的实际参数。

查看 REST 方法的签名以提供一些有关预期内容的上下文会有所帮助,但它可能需要某种 id 吗? 因此,如果您想为用户 123 创建消息,您可以将表单操作 URL 设置为如下所示:

<form action="http://localhost:8080/MySite/rest/site/123/createmessage">

关于java - 如何获取 HTML 中的 REST 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17489385/

相关文章:

java - Spring JPA 中方法名称中支持的关键字

android - 工具栏返回动画

java - 文件上传时出现 angularJS 405 错误

java - Spring REST API 多个 RequestParams 与 Controller 实现

java - reactx 和 REST Web 服务

java - int[] arr2 = arr1.clone() 编译时不会将 RHS (Object) 转换为 (int[])。为什么 derivedObj = baseObj 允许不强制转换为 Derived(即 int[])?

java - 创建一个使用速度的可重用解析方法

java - android 打开抽屉布局

android - 如何仅在我的应用程序中禁用声音?

java - 生成随机数时出现非法参数异常