的阅读器FormParams
是开箱即用的,您不必显式注册它(除非您禁用了默认阅读器)。它仅支持两种内容类型:
application/x-www-form-urlencoded
text/plain
你可以像这样使用它:
req.content().as(FormParams.class).thenAccept(fp -> {
fp.first("foo")
.ifPresentOrElse((greeting) -> res.send(greeting),
() -> res.status(400).send());
});
您可以使用 curl 进行测试:
curl -X POST -d 'foo=bar' http://localhost:8080/abc
在 HTML 中,表单如下所示:
<form action="/abc" method="post" enctype="application/x-www-form-urlencoded">
<input type="text" name="foo" />
<input type="submit" value="Submit!" name="submit">
</form>
Helidon 还支持multipart/form-data
:
将以下依赖项添加到您的pom.xml
:
<dependency>
<groupId>io.helidon.media</groupId>
<artifactId>helidon-media-multipart</artifactId>
</dependency>
在构建器中配置媒体支持WebServer
:
WebServer.builder(createRouting())
.addMediaSupport(MultiPartSupport.create())
然后像这样使用它:
req.content().as(ReadableMultiPart.class).thenAccept(multiPart -> {
multiPart.field("foo")
.ifPresentOrElse((part) -> res.send(part.as(String.class)),
() -> res.status(400).send());
});
你可以像这样用 curl 测试它:
curl -X POST -F 'foo=bar' http://localhost:8080/abc
在 HTML 中,表单如下所示:
<form action="/abc" method="post" enctype="multipart/form-data">
<input type="text" name="foo" />
<input type="submit" value="Submit!" name="submit">
</form>