0

我正在使用 Resteasy 2.3.5。当我在浏览器中请求其 URL 时,永远不会调用以下@POST带注释的方法:http://localhost:8080/MyApp/rest/echo/foobar

@POST
@Path("/echo/{msg}")
@Produces("text/plain; charset=UTF-8")
public String echo(@PathParam("msg") final String msg) {
    return msg;
}

但是,当我替换它时@POST@GET它工作得很好(浏览器返回foobar)。怎么了?

4

2 回答 2

2

发生这种情况是因为您的浏览器在您键入 URL 时总是会执行 GET 请求。
尝试下载像cURL这样的 HTTP 客户端工具。然后从命令行环境运行以下测试:

curl "http://localhost:8080/MyApp/rest/echo/foobar" -X POST

您可以使用任何 HTTP 方法、标头等。试一试。

于 2013-02-25T11:30:35.563 回答
1

@POST注解指的是 HTTP POST 请求方法。您的 Web 浏览器通常只会发出 GET HTTP 请求方法,这就是为什么当您更改为@GET. 您可以使用许多工具来帮助您测试 REST 服务,其中一些工具可以直接在您的浏览器中工作。

对于 Firefox,请尝试https://addons.mozilla.org/en-us/firefox/addon/restclient/

对于 Chrome,请尝试https://chrome.google.com/webstore/detail/rest-console/cokgbflfommojglbmbpenppphppikmonn?hl=en

您还可以查看 您使用哪些工具来测试您的公共 REST API?

于 2013-02-28T13:44:26.273 回答