Указание параметра в PUT - Rest Web Service - PullRequest
0 голосов
/ 10 ноября 2010

Я создаю веб-сервис REST с использованием API Джерси, и у меня возникла проблема при передаче параметра в метод 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 вызывается , так как я получаю «Content», напечатанный на консоли сервера (это Glassfish), но, похоже, параметр не читается. Есть ли @statement или что-то, что я должен добавить к параметру?

Спасибо! Krt_Malta

1 Ответ

1 голос
/ 10 ноября 2010

Вы не устанавливаете тело запроса в своем коде клиента.

Вам необходимо отправить некоторый контент, например,

xmlHttp.Send("here is my content")

Однако вы объявили конечную точку получения для принятия "text / html".Я бы изменил это, чтобы принять вместо «text / plain».Или, если вы действительно хотите получить несколько значений, вы можете принять «application / x-www-urlencoded-form».Однако вам нужно будет отформатировать это самостоятельно в JavaScript.Веб-браузеры не знают, как ставить формы.Они могут только POST формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...