我正在尝试编写@POST同步方法,它将接收2个String参数。当我从浏览器访问2个链接时,我没有得到返回String“SUCCESS!”。似乎这些方法根本没有被调用?
http://localhost:9080/SampleWeb/resources/helloworld/sync?param1=string1¶m2=string2
http://localhost:9080/SampleWeb/resources/helloworld/sync/string1/string2
@Path("/helloworld")
public class HelloWorldResource {
@POST
@Produces("text/plain")
@Path("/sync")
public String sync(
@QueryParam("param1") String param1,
@QueryParam("param2") String param2) {
//do something
return "SUCCESS!";
}
@POST
@Produces("text/plain")
@Path("/sync/{param1}/{param2}")
public String sync(
@PathParam("param1") String param1,
@PathParam("param2") String param2) {
//do something
return "SUCCESS!";
}
}
答案 0 :(得分:1)
您说您正在通过浏览器访问链接 - 您是否正在浏览"到URL,或者您是否从表单提交(或使用javascript)显式POST到URL?如果您只是浏览"到链接(即点击链接或将其放在地址栏中),您的浏览器将执行GET,而不是POST。
如果你正在使用Unix操作系统或在Windows上安装了curl,你可以使用curl来执行POST,你应该会收到" SUCCESS!"响应:
curl -X POST http://localhost:9080/SampleWeb/resources/helloworld/sync?param1=string1
答案 1 :(得分:0)
如果您尝试直接从浏览器访问该URL,您将访问GET方法。要访问其他HTTP方法,您可以使用一些像REST客户端一样的浏览器插件,例如,我使用RESTClient Firefox插件。在那里,您可以提供其他选项,如Request Body和其他有用的选项,如HTTP Headers as Content-type:application / json。