在PUT中指定参数 - 休息Web服务

时间:2010-11-10 11:08:10

标签: rest jersey

我正在使用Jersey API构建REST Web服务,并且在将参数传递给PUT方法时遇到了问题。方法是这样的:

@PUT
@Consumes("text/html")
public void putHtml (String content) {
    System.out.println("Content"+content);
}

我用以下方法调用它:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script type="text/javascript">
            function passName()
            {

                xmlHttp=new XMLHttpRequest();
                var url = "/RestWebApp/resources/greeting";
                xmlHttp.open("PUT",url,false);
                xmlHttp.send();
            }
        </script>
        <title>REST Testing</title>
    </head>
    <body>
        Put name:<input type="text" name="name"/>
        <br />
        <input type="button" value="Put" onclick="passName()"/>
    </body>
</html>

PUT方法调用,因为我在服务器控制台(Glassfish)中打印了“内容”,但似乎没有读取参数。是否有@statement或我应该添加到参数中的东西?

谢谢! Krt_Malta

1 个答案:

答案 0 :(得分:1)

您没有在客户端代码中设置请求正文。

您需要发送一些内容,例如

xmlHttp.Send("here is my content")

但是,您已声明接收端点接受“text / html”。我会改为接受“text / plain”。或者,如果您确实想要接收多个值,则可以接受“application / x-www-urlencoded-form”。但是,您需要在javascript中自行格式化。 Web浏览器不知道如何PUT表单。他们只能张贴表格。