2013-02-24 116 views
0

我使用Resteasy 2.3.5。下面@POST註釋的方法不會被調用,當我要求其URL http://localhost:8080/MyApp/rest/echo/foobar在我的瀏覽器:Resteasy @POST註釋方法不叫

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

然而,當我通過@GET更換@POST只是正常工作(瀏覽器返回foobar)。哪裏不對?

回答

2

發生這種情況的原因是,當您鍵入URL時,瀏覽器將始終執行GET請求。
嘗試下載像cURL這樣的HTTP客戶端工具。然後從你的命令行環境中運行以下測試:

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

你可以使用任何的HTTP方法,頁眉等試試看玩耍。

+0

有時候,你看不到樹木,不見森林...謝謝。 – Jack 2013-03-02 06:01:00

1

@POST註釋引用HTTP POST請求方法。您的網絡瀏覽器通常只會發出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

您還可以看到 What tools do you use to test your public REST API?

+0

感謝Firefox插件,請看看它。 – Jack 2013-03-02 06:01:37