我创建了一个 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/