我想检查一下是否可以使用getparam从下面的请求URL解析start_time和end_time
https://[--hostname--]/sample_app/apthroughput/getAllControllers?start_time=<start time value>&end_time=<end time value>&label=<selected label>
答案 0 :(得分:3)
查询字符串的解析非常简单,除了同一查询参数有多个值时。
<FloatingActionButton style={{height: 21, width: 21}} iconStyle={{height: 21, width: 21}}>
<SwapVert />
</FloatingActionButton>
在这种情况下,下面的代码有助于获取e.g.: https://[--hostname--]/sample_app/apthroughput/getAllControllers?type=xxx&type=yyy
此answer提供了一个想法。从中复制:
List<String>
答案 1 :(得分:1)
您可以获取参数String表示,但您需要自己转换该值。
答案 2 :(得分:1)
以下是一个例子:
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
HttpServer server = vertx.createHttpServer();
server.requestHandler(request -> {
String startTime = request.getParam("start_time");
String endTime = request.getParam("end_time");
// This handler gets called for each request that arrives on the server
HttpServerResponse response = request.response();
response.putHeader("content-type", "text/plain");
// Write to the response and end it
response.end(String.format("Got start time %s, end time %s", startTime, endTime));
});
server.listen(8888);
}
打开http://localhost:8888/?start_time=20161014&end_time=20161015查看结果。
答案 3 :(得分:0)
我知道这是(有点)较晚的响应,但是在Vert.X 3.9中,要获取 start_time 和 end_time 参数,您可以通过以下方式获取它们:
public void getAllControllersHandler(RoutingContext context) {
Mutlimap parameters = context.request().params();
String start_time = parameters.get("start_time");
String end_time = parameters.get("end_time");
// now do what you need to with retrieved values :)
}
此外,当端点将其传递到 Route get()时必须看起来像这样(我假设您正在使用HTTP Get方法):
Router router = Router.router(vertx);
router.get("/sample_app/apthroughput/getAllControllers").handler(this::getAllControllersHandler);
希望有帮助。
建议。如果这可以解决问题,请将其标记为可接受的答案。
答案 4 :(得分:0)
@OrkunOzen 的回答很好,但 MultiMap 使用不区分大小写的键。
为了更精确的控制,你可以深入代码找到从 HttpServerRequest.params()
调用的这个 util 函数 ->
io.vertx.core.http.impl.HttpUtils.params(String uri)
此代码将让您完全控制:
QueryStringDecoder queryStringDecoder = new QueryStringDecoder(uri);
Map<String, List<String>> prms = queryStringDecoder.parameters();