我正在使用Resteasy 2.3.5。当我在浏览器中请求其网址@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
)。有什么问题?
答案 0 :(得分:2)
这是因为您键入URL时浏览器将始终执行GET请求 尝试下载cURL之类的HTTP客户端工具。然后从命令行环境运行以下测试:
curl "http://localhost:8080/MyApp/rest/echo/foobar" -X POST
您可以使用任何HTTP方法,标题等。试一试。
答案 1 :(得分: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/cokgbflfommojglbmbpenpphppikmonn?hl=en