0

我创建了一个 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.And 我的表格为:

<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 参数?

4

1 回答 1

1

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

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

<form action="http://localhost:8080/MySite/rest/site/123/createmessage">
于 2013-07-05T20:10:53.990 回答