Http vert.x请求x-www-form-urlencoded数组

Http vert.x请求x-www-form-urlencoded数组,http,post,request,microservices,vert.x,Http,Post,Request,Microservices,Vert.x,你好 我想创建一个web服务来处理HTTP请求。这项请求包括: Content-Type: x-www-form-urlencoded and body: Name=Vasya&Email=main@mail.ru&Phone=49494994&payment[sys]=none&payment[systranid]=0&payment[orderid]=1133704863&payment[products][0][name]=Мороженко

你好

我想创建一个web服务来处理HTTP请求。这项请求包括:

Content-Type: x-www-form-urlencoded and body: Name=Vasya&Email=main@mail.ru&Phone=49494994&payment[sys]=none&payment[systranid]=0&payment[orderid]=1133704863&payment[products][0][name]=Мороженко&payment[products][0][quantity]=1&payment[products][0][amount]=4566&payment[products][0][price]=4566&payment[products][0][sku]=4345345345&payment[products][1][name]=Стаканчик&payment[products][1][quantity]=1&payment[products][1][amount]=100&payment[products][1][price]=100&payment[products][1][sku]=59595959&payment[amount]=4666&formid=form218781270&formname=Cart
我无法获取付款参数(付款{})。
我使用:routingContext.request().getParam(“电话”),但对于支付,这种方法不起作用


请帮助提供建议

表单数据是纯平面键值

我根据您的描述创建了一个小示例服务器代码:

suspend fun main(){
val vertx=vertx.vertx()
val路由器=路由器。路由器(vertx)
路由器路由()
.handler(BodyHandler.create())
路由器post(“/test”)
.handler{ctx->
ctx.request().formAttributes().forEach{
println(${it.key}:${it.value}”)
}
ctx.response().end()
}
vertx.createHttpServer()
.requestHandler(路由器)
.listenAwait(8080)
}
将其与身体一起运行,这是地图中的键值对:

Name: Vasya
Email: main@mail.ru
Phone: 49494994
payment[sys]: none
payment[systranid]: 0
payment[orderid]: 1133704863
payment[products][0][name]: Мороженко
payment[products][0][quantity]: 1
payment[products][0][amount]: 4566
payment[products][0][price]: 4566
payment[products][0][sku]: 4345345345
payment[products][1][name]: Стаканчик
payment[products][1][quantity]: 1
payment[products][1][amount]: 100
payment[products][1][price]: 100
payment[products][1][sku]: 59595959
payment[amount]: 4666
formid: form218781270
formname: Cart
如您所见,没有
付款

我建议您对服务器和客户机使用JSON(
application/JSON
),而不是表单数据,这样会更简单,更适合您的用例


如果没有,您可以尝试迭代属性并从表单数据中提取所需内容。

谢谢,这就是我缺少的内容