[英]Vert.x: How to send a post request?
我的第一個 Vertx Web 應用程序:
我希望在localhost.8080\/Test<\/strong>獲取 index.html 然后找到一種方法來檢索數據,但頁面不顯示<\/strong>
我有一個 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);
}
}
我認為您發送了一個 get 請求,但是在您的代碼中您處理了一個返回 html 文件的 post 請求......我認為首先您必須處理一個返回 html 頁面的 get 請求,並為表單編寫一個路由。
"將 router.post router.post(
更改為router.get(
。
目前,您將路由器配置為僅處理 HTTP POST
請求。 這意味着,它被配置為響應這樣的 HTTP 請求:
POST /Test
但是當你嘗試在瀏覽器中打開localhost.8080/Test
時,它會向你的服務器發送這樣一個請求:
GET /Test
這就是為什么你必須告訴路由器處理GET
而不是POST
請求。
附加信息: GET
和POST
是所謂的HTTP request methods
。 如果您想了解更多相關信息,我建議您閱讀以下文章: https ://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
在您的代碼中,您可以刪除extends AbstractVerticle
並且它的工作方式相同。 如果您希望您的代碼在 Verticle 的上下文中執行,您必須創建您的類的一個實例,然后您必須部署它:
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.post("/Test").handler(rc -> rc.response().sendFile("index.html"));
vertx.createHttpServer()
.requestHandler(router)
.listen(8080);
}
}
由於我看到您有點困惑,您可能還想閱讀以下有關 Verticles 的文章: https ://vertx.io/docs/vertx-core/java/#_verticles
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.