簡體   English   中英

在libGDX中發送POST請求

[英]Sending a POST request in libGDX

我該如何使用libGDX發送POST請求,以便像登錄時一樣工作?

當我使用Postman使用IP:8080 / login?email = EMAIL&password = 12345將POST請求發送到服務器時。 登錄后,它將顯示正確頁面的HTML代碼。 但是,當在libGDX中使用以下代碼時,它將為我提供主登錄頁面。 我嘗試使用帶有和不帶有?的setContent。 我嘗試使用包含電子郵件和密碼的Map,並使用HttpParametersUtils.convertHttpParameters()將其傳遞到setContent中,但是沒有運氣。

我還閱讀了有關使用Java發送POST請求的文章,該文章要求您在傳入參數之前先打開連接。 但是,在這種情況下,我不知道如何使用libGDXs網絡方法進行操作。

這是我目前所擁有的。

 String URL = "http://IP:8080/login";
    Net.HttpRequest httpPOST = new Net.HttpRequest(Net.HttpMethods.POST);
    httpPOST.setUrl(URL);
    httpPOST.setContent("?email=EMAIL&password=12345");

    Gdx.net.sendHttpRequest(httpPOST, new Net.HttpResponseListener() {
                @Override
                public void handleHttpResponse(Net.HttpResponse httpResponse) {
                    Gdx.app.log("MSG", httpResponse.getResultAsString());
                }

                @Override
                public void failed(Throwable t) {
                    Gdx.app.log("LOGIN", "was NOT successful!");
                }

                @Override
                public void cancelled() {
                    Gdx.app.log("LOGIN", "was cancelled!");
                }
    });

構建內容的方式就像發送GET請求而不是POST。 最簡單的方法就是將Net.HttpMethods.POST更改為Net.HttpMethods.GET 然后,您仍然在URL中向服務器發送數據。 如果要通過http正文發送,則必須使用POST。 但是隨后您必須通過刪除問號(“?”)來刪除GET語法。

POST和GET之間的區別的一個好資源是: https : //www.w3schools.com/tags/ref_httpmethods.asp

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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