Вот правильный способ получить значения из представленной HTML-формы (с типом контента application/x-www-form-urlencoded
) в ресурсе сервера-рестарта. Это то, что ты сделал на самом деле.
public class MyServerResource extends ServerResource {
@Post
public Representation handleForm(Representation entity) {
Form form = new Form(entity);
// The form contains input with names "user" and "password"
String user = form.getFirstValue("user");
String password = form.getFirstValue("password");
(...)
}
}
В вашем случае, форма HTML не отправлено, потому что вы не определили какой-либо атрибут name
для вашей формы. Я использовал ваш HTML-код, и отправленные данные пустые. Вы можете проверить это, используя инструменты разработчика Chrome (Chrome) или Firebug (Firefox).
POST /myrestlet HTTP/1.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
Connection: keep-alive
Host: localhost:8182
Referer: http://localhost:8182/static/test.html
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0
Content-Length: 0
Content-Type: application/x-www-form-urlencoded
Вы должны использовать что-то подобное для HTML формы:
<form action="/test" method="post">
<input type="text" name="val1" size="50" value="5"/>
<input type="text" name="val2" size="50" value="C:\Temp"/>
(and a few other input type texts)
<input type="submit" value="send">
</form>
В случае запрос будет:
POST /myrestlet HTTP/1.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
Connection: keep-alive
Host: localhost:8182
Referer: http://localhost:8182/static/test.html
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0
Content-Length: 23
Content-Type: application/x-www-form-urlencoded
val1=5&val2=C%3A%5CTemp
Надеется, что это помогает вам, Тьерри
Параметры запроса отсутствуют. –
@ RomanC вы можете уточнить? – Eddy
Нет, я не знаком с приведенным выше кодом, я просто вижу некоторые опечатки в HTML-коде. –