【问题标题】:How to create a multipart form post request handler in vertx如何在 vertx 中创建多部分表单发布请求处理程序
【发布时间】:2017-04-11 14:02:01
【问题描述】:

您好,我在独立应用程序上使用 java 中的 vertx 来读取我的 Web 应用程序中的端口。我想从表单中获取帖子数据。 我的网络应用程序有一个带有我希望阅读的发布方法的表单。 我的逻辑是

  1. 创建垂直

  2. 创建http服务器

  3. 创建处理程序请求(它不采用我的所有参数 代码)

  4. 监听 httpServer
  5. 在处理程序中期望多部分请求
  6. Multimap 和获取表单属性

我不知道我错过了什么,我是 vertx 的新手。

由于某种原因,我无法在此处发布代码。

我的代码: https://pastebin.com/A1hjXFb6

【问题讨论】:

    标签: java post httprequest multipartform-data vert.x


    【解决方案1】:

    确保您的 HTML 表单具有 enctype="multipart/form-data" 属性。

    然后在你的 vertx 代码中:

    public class loginLogic extends AbstractVerticle {
    
        //Vertx vertx;
        private HttpServer httpServer = null;
    
        @Override
            public void start() {
                Router router = Router.router(vertx);
                router.route().handler(BodyHandler.create().setUploadsDirectory("uploads"));
                router.post("/form").handler(ctx -> {
                      ctx.response().putHeader("Content-Type", "text/plain");
                      ctx.response().setChunked(true);
                      for (FileUpload f : ctx.fileUploads()) {
                        System.out.println("f");
                        ctx.response().write("Filename: " + f.fileName());
                        ctx.response().write("\n");
                        ctx.response().write("Size: " + f.size());
                      }
    
                      ctx.response().end();
                });
                vertx.createHttpServer().requestHandler(router::accept).listen(8080);
        }
    }
    

    【讨论】:

    • 实现Router router = Router.router(vertx); 需要哪个库
    • 我需要启用上传功能吗?我想要的只是从表单中获取帖子数据
    • 路由器是 vertx io.vertx.ext.web.Router 的一部分。您无需启用任何东西,只需设置上传路径即可。
    • 这不是我需要做的,我只需要在本机应用程序中使用 java 类来读取 html 表单。
    猜你喜欢
    • 2022-06-16
    • 2016-11-11
    • 2010-11-03
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 2022-08-19
    相关资源
    最近更新 更多