簡體   English   中英

"Vert.x:如何發送發布請求?"

[英]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請求。

附加信息: GETPOST是所謂的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM