Vert.x:如何发送邮件请求



我的第一个Vertx Web应用程序:

我希望在localhost.8080/Test上获得index.html,然后找到检索数据的方法,但页面没有显示

我有一个RequestResponseExample类:

public class RequestResponseExample extends AbstractVerticle {
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
Router router = Router.router(vertx);
router.post("/Test").handler(rc -> rc.response().sendFile("index.html"));
vertx.createHttpServer()
.requestHandler(router)
.listen(8080);
}
}

和我的Html代码index.Html

<html>
<head>
<meta charSet="UTF-8">
<title>OTP Authenticator Verification Example Page</title>
</head>
<body>
<form action="/" method="post" encType="multipart/form-data">
<div>
<label>Code:</label>
<input type="text" name="code"/><br/>
</div>
<div>
<input type="submit" value="Submit"/>
</div>
</form>
</body>
</html>

解决方案

router.post(更改为router.get(

说明

目前,您正在将路由器配置为仅处理HTTPPOST请求。这意味着,它被配置为响应这样的HTTP请求:

POST /Test

但当你试图在浏览器中打开localhost.8080/Test时,它会向你的服务器发送这样的请求:

GET /Test

这就是为什么您必须告诉路由器处理GET而不是POST请求。

附加信息:GETPOST被称为HTTP request methods。如果你想了解更多信息,我建议你阅读以下文章:https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods

关于顶点

在您的代码中,您可以删除extends AbstractVerticle,它将以相同的方式工作。如果你想让你的代码在垂直环境中执行,你必须创建一个类的实例,然后部署它:

import io.vertx.core.AbstractVerticle;
import io.vertx.core.Vertx;
import io.vertx.ext.web.Router;
import io.vertx.ext.web.handler.BodyHandler;
public class RequestResponseExample extends AbstractVerticle {
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
vertx.deployVerticle(new RequestResponseExample());
}
@Override
public void start(){
Router router = Router.router(vertx);
router.get("/Test").handler(rc -> rc.response().sendFile("index.html"));
router.post().handler(BodyHandler.create());
router.post("/").handler(rc -> System.out.println(rc.request().formAttributes().get("code")));
vertx.createHttpServer()
.requestHandler(router)
.listen(8080);
}
}

由于我看到你有点困惑,你可能还想阅读以下关于眩晕的文章:https://vertx.io/docs/vertx-core/java/#_verticles

我认为您发送了一个GET请求,但您处理了一个返回html文件的POST请求。我认为首先你必须处理一个返回html页面的GET请求,并为表单编写一个路由

相关内容

  • 没有找到相关文章

最新更新