private void testParams(char delim) { Map<String, String> params = genMap(10); String query = generateQueryString(params, delim); server.requestHandler(req -> { assertEquals(query, req.query()); assertEquals(params.size(), req.params().size()); for (Map.Entry<String, String> entry : req.params()) { assertEquals(entry.getValue(), params.get(entry.getKey())); } req.response().end(); }); server.listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, "some-uri/?" + query, resp -> testComplete()).end(); })); await(); }
@Test public void testNoParams() { server.requestHandler(req -> { assertNull(req.query()); assertTrue(req.params().isEmpty()); req.response().end(); }); server.listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, DEFAULT_TEST_URI, resp -> testComplete()).end(); })); await(); }
List<String> authorities = new ArrayList<>(); for (String authority : ctx.request().params().getAll("authority")) { authorities.add(authority);
for (String authority : ctx.request().params().getAll("authority")) { authorities.add(authority);
@Override public void setParameter(String name, String value) { if (parameterMap != null) { parameterMap.put(name, new String[] {value}); return; } vertxRequest.params().set(name, value); }
@Override public Enumeration<String> getParameterNames() { if (parameterMap != null) { return Collections.enumeration(parameterMap.keySet()); } return Collections.enumeration(this.vertxRequest.params().names()); }
@Override public String[] getParameterValues(String name) { if (parameterMap != null) { return parameterMap.get(name); } List<String> paramList = this.vertxRequest.params().getAll(name); return paramList.toArray(new String[paramList.size()]); }
@Override public MultiValueMap<String, String> parameters() { if (queryParameters == null) { MultiMap parameters = httpServerRequest.params(); queryParameters = new LinkedMultiValueMap<>(parameters.size()); for(Map.Entry<String, String> param : httpServerRequest.params()) { queryParameters.put(param.getKey(), parameters.getAll(param.getKey())); } } return queryParameters; }
private void addPathParam(RoutingContext context, String name, String value) { HttpServerRequest request = context.request(); final String decodedValue = URIDecoder.decodeURIComponent(value, false); if (!request.params().contains(name)) { request.params().add(name, decodedValue); } context.pathParams().put(name, decodedValue); }
private void buildParams(final HttpRequestBuilder httpRequestBuilder, final HttpServerRequest request, final String contentType) { if (request.params().size() == 0) { httpRequestBuilder.setParams(MultiMap.empty()); } else { httpRequestBuilder.setParams(new MultiMapWrapper(request.params())); } if (HttpContentTypes.isFormContentType(contentType)) { httpRequestBuilder.setFormParamsSupplier(() -> new MultiMapWrapper(request.formAttributes())); } }
@Test public void testNoParams() { server.requestHandler(req -> { assertNull(req.query()); assertTrue(req.params().isEmpty()); req.response().end(); }); server.listen(onSuccess(server -> { client.request(HttpMethod.GET, DEFAULT_HTTP_PORT, DEFAULT_HTTP_HOST, DEFAULT_TEST_URI, resp -> testComplete()).end(); })); await(); }
@Test public void testPattern4() throws Exception { router.route("/blah/:abc/foo").handler(rc -> rc.response().setStatusMessage(rc.request().params().get("abc")).end()); testPattern("/blah/tim/foo", "tim"); }
@Test public void testUnderscoreOnRoutePath() throws Exception { router.route("/:account_id").handler(rc -> { assertEquals("foo", rc.request().params().get("account_id")); rc.response().end(); }); testRequest(HttpMethod.GET, "/foo", 200, "OK"); }
@Test public void testPattern1WithMethod() throws Exception { router.route(HttpMethod.GET, "/:abc").handler(rc -> rc.response().setStatusMessage(rc.request().params().get("abc")).end()); testPattern("/tim", "tim"); testRequest(HttpMethod.POST, "/tim", 404, "Not Found"); }
@Test public void testInvalidPatternWithBuilder() throws Exception { router.route().path("/blah/:!!!/").handler(rc -> { MultiMap params = rc.request().params(); rc.response().setStatusMessage(params.get("!!!")).end(); }); testRequest(HttpMethod.GET, "/blah/tim", 404, "Not Found"); // Because it won't match }
@Test public void testRegexWithNamedParams() throws Exception { router.routeWithRegex(HttpMethod.GET, "\\/(?<name>[^\\/]+)\\/(?<surname>[^\\/]+)").handler(rc -> { MultiMap params = rc.request().params(); rc.response().setStatusMessage(params.get("name") + params.get("surname")).end(); }); testPattern("/joe/doe", "joedoe"); }
@Test public void testRegex1() throws Exception { router.routeWithRegex("\\/([^\\/]+)\\/([^\\/]+)").handler(rc -> { MultiMap params = rc.request().params(); rc.response().setStatusMessage(params.get("param0") + params.get("param1")).end(); }); testPattern("/dog/cat", "dogcat"); }
@Test public void testDuplicateParams2() throws Exception { router.route("/test/:p").handler(RoutingContext::next); router.route("/test/:p").handler(ctx -> ctx.reroute("/done/abc/cde")); router.route("/done/:a/:p").handler(routingContext -> { assertEquals(1, routingContext.request().params().getAll("p").size()); assertEquals("cde", routingContext.request().getParam("p")); routingContext.response().end(); }); testRequest(HttpMethod.GET, "/test/abc", 200, "OK"); }