java - Http 服务器(Vertx 上的 Java)没有获取 POST 参数

标签 java http vert.x

我正在从客户端发送 ajax 请求,例如:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(document).ready(function() {
        $.ajax({
        url: "http://192.168.1.74:8888",

        type: "POST",
        data: ({username: 'Bobby'})

    });
})
</script>
</head>
<body>
</body>
</html>

我的 Http Server 是用 Java 写的,利用 vertx 是这样的:

public class Main extends AbstractVerticle {


  @Override
  public void start() throws Exception {


       vertx.createHttpServer().requestHandler(new Handler<HttpServerRequest>() {
        @Override
        public void handle(HttpServerRequest request) {

          System.out.println(request.getParam("username"));    

        }
    }).listen(8888);

  }
}

每次我运行客户端时,服务器都会写入控制台以便发送请求,但服务器说该值为空。我究竟做错了什么?如何读取从客户端发送的 POST 参数?

更新:

我找到了问题,但没有解决方案。如果我将 ajax 更改为从 POST 获取,那么它将出现。我如何使它适用于 POST 而不是 GET?与现在发生的事情相反?

干杯

最佳答案

我在处理我的项目时遇到了这个问题。我在客户端使用 Dojo。我设法通过在客户端和服务器端进行调整来解决这个问题。

客户:

var json = JSON.stringify({
    "username": "Bobby"
}); 
request.post("yoururl", {
    data: json,
    headers: {
       "Content-Type": "application/javascript"
    }
});

显然,在服务器端,需要在处理代码之前调用方法 BodyHandler.create()

router.route(HttpMethod.POST, "yoururl").handler(BodyHandler.create());
router.route(HttpMethod.POST, "yoururl").handler(routingContext -> 
{    
    String sectionType = routingContext.request().getParam("sectionId");
    JsonObject j = routingContext.getBodyAsJson();
});

我希望这能解决您的问题。

关于java - Http 服务器(Vertx 上的 Java)没有获取 POST 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30251479/

相关文章:

node.js - Vertx.io - 如何获取单个 http 连接上发出的请求数?

java - Spring 集成卡夫卡消费者

java - 为什么 JOptionPane 会干扰我的字符串?

ruby - 使用 Typhoeus 发出请求,某些 URL 始终返回空的 '400' 响应

android - 从 Android 模拟器捕获网络流量

java - 顶点 Rx-Java : reasons for eventBus subscriber being unsubscribed

java - Vert.x 垂直方法

java - 注入(inject)slf4j Logger : Unsatisfied dependencies for type Logger with qualifiers @Default

java - 将 AsyncAppender 添加到 log4j.properties

api - dart-如何使用http.post实时获取数据?