我正在运行VertX HTTP Server。当内容类型是HTML /表单时,它理解请求,但是当我尝试发布JSON数据时,它甚至从未进入请求处理程序。
我需要做些什么来让Vertx期待JSON吗?这支持了吗?
答案 0 :(得分:4)
这是一个java示例。请注意,将处理json的数据处理程序仅针对post请求执行。将带有一些json数据的请求发布到此处,它将以相同的方式返回。
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");
}
}
答案 1 :(得分:1)
如果可以的话,请查看最新的Vertx-web他们使用优雅的语法ala NodeJs路由提供了一种处理各种请求格式(多部分数据,url编码的参数,文件上传等)的非常简洁的方式
虽然您需要将代码迁移到Vertx 3.0