如何使 Vertx 请求处理程序期望 JSON 数据?
How to make Vertx request handler expect JSON data?
我是 运行 VertX HTTP 服务器。它理解内容类型为 HTML/forms 时的请求,但是当我尝试 post JSON 数据时,它甚至从未进入请求处理程序。
我需要做些什么才能让 Vertx 期待 JSON?支持吗?
这是一个 java 示例。请注意,将处理 json 的数据处理程序仅针对 post 请求执行。 Post 一个带有一些 json 数据的请求,它将 return 与此相同。
import org.vertx.java.core.Handler;
import org.vertx.java.core.buffer.Buffer;
import org.vertx.java.core.http.HttpServerRequest;
import org.vertx.java.platform.Verticle;
/**
* Simple Http server
*/
public class HttpVerticle extends Verticle {
public void start() {
vertx.createHttpServer()
.requestHandler(new Handler<HttpServerRequest>() {
@Override
public void handle(final HttpServerRequest request) {
container.logger().info(
"Got request for " + request.path());
if (request.method().equalsIgnoreCase("POST")) {
request.dataHandler(new Handler<Buffer>() {
@Override
public void handle(Buffer data) {
request.response().end("got data " + data);
}
});
} else {
request.response().end("got request");
}
}
}).listen(8080);
container.logger().info("HttpVerticle started");
}
}
如果可以,请查看最新的 Vertx-web 它们提供了一种使用优雅语法处理各种请求格式(多部分数据、url 编码参数、文件上传等)的非常简洁的方法ala NodeJs 路由
尽管您需要将代码迁移到 Vertx 3.0
我是 运行 VertX HTTP 服务器。它理解内容类型为 HTML/forms 时的请求,但是当我尝试 post JSON 数据时,它甚至从未进入请求处理程序。
我需要做些什么才能让 Vertx 期待 JSON?支持吗?
这是一个 java 示例。请注意,将处理 json 的数据处理程序仅针对 post 请求执行。 Post 一个带有一些 json 数据的请求,它将 return 与此相同。
import org.vertx.java.core.Handler;
import org.vertx.java.core.buffer.Buffer;
import org.vertx.java.core.http.HttpServerRequest;
import org.vertx.java.platform.Verticle;
/**
* Simple Http server
*/
public class HttpVerticle extends Verticle {
public void start() {
vertx.createHttpServer()
.requestHandler(new Handler<HttpServerRequest>() {
@Override
public void handle(final HttpServerRequest request) {
container.logger().info(
"Got request for " + request.path());
if (request.method().equalsIgnoreCase("POST")) {
request.dataHandler(new Handler<Buffer>() {
@Override
public void handle(Buffer data) {
request.response().end("got data " + data);
}
});
} else {
request.response().end("got request");
}
}
}).listen(8080);
container.logger().info("HttpVerticle started");
}
}
如果可以,请查看最新的 Vertx-web 它们提供了一种使用优雅语法处理各种请求格式(多部分数据、url 编码参数、文件上传等)的非常简洁的方法ala NodeJs 路由
尽管您需要将代码迁移到 Vertx 3.0