繁体   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