List of usage examples for io.netty.handler.codec.http QueryStringDecoder QueryStringDecoder
public QueryStringDecoder(URI uri, Charset charset)
From source file:cn.wantedonline.puppy.httpserver.component.HttpRequest.java
License:Apache License
public QueryStringDecoder getQueryStringDecoder() { if (AssertUtil.isNull(queryStringDecoder)) { queryStringDecoder = new QueryStringDecoder(getUri(), charset4QueryStringDecoder); }/*w w w. j a v a 2 s .c o m*/ return queryStringDecoder; }
From source file:com.barchart.http.server.PooledServerRequest.java
License:BSD License
@Override public Map<String, List<String>> getParameters() { if (queryStringDecoded == null) { if (HttpHeaders.Values.APPLICATION_X_WWW_FORM_URLENCODED .equals(headers().get(HttpHeaders.Names.CONTENT_TYPE))) { queryStringDecoded = new QueryStringDecoder(nettyRequest.content().toString(getCharacterEncoding()), false).parameters(); } else if (queryString != null) { queryStringDecoded = new QueryStringDecoder(queryString, false).parameters(); } else {/*from w w w. j av a 2s .c o m*/ queryStringDecoded = new HashMap<String, List<String>>(); } } return queryStringDecoded; }
From source file:com.barchart.netty.server.http.pipeline.PooledHttpServerRequest.java
License:BSD License
@Override public Map<String, List<String>> getParameters() { if (queryStringDecoded == null) { if (HttpHeaders.Values.APPLICATION_X_WWW_FORM_URLENCODED .equals(headers().get(HttpHeaders.Names.CONTENT_TYPE))) { queryStringDecoded = new QueryStringDecoder(nettyRequest.content().toString(getCharacterEncoding()), false).parameters(); } else if (queryString != null) { queryStringDecoded = new QueryStringDecoder(queryString, false).parameters(); } else {/*w w w. j a va 2 s .c o m*/ queryStringDecoded = Collections.emptyMap(); } } return queryStringDecoded; }
From source file:com.github.mike10004.seleniumhelp.TrafficMonitorFilter.java
License:Apache License
protected void captureQueryParameters(HttpRequest httpRequest, HarRequest harRequest) { // capture query parameters. it is safe to assume the query string is UTF-8, since it "should" be in US-ASCII (a subset of UTF-8), // but sometimes does include UTF-8 characters. QueryStringDecoder queryStringDecoder = new QueryStringDecoder(httpRequest.getUri(), StandardCharsets.UTF_8); try {/*w ww . ja va 2 s . c o m*/ for (Map.Entry<String, List<String>> entry : queryStringDecoder.parameters().entrySet()) { for (String value : entry.getValue()) { harRequest.getQueryString().add(new HarNameValuePair(entry.getKey(), value)); } } } catch (IllegalArgumentException e) { // QueryStringDecoder will throw an IllegalArgumentException if it cannot interpret a query string. rather than cause the entire request to // fail by propagating the exception, simply skip the query parameter capture. log.info("Unable to decode query parameters on URI: " + httpRequest.getUri(), e); } }
From source file:com.king.platform.net.http.util.UriQueryParser.java
License:Apache License
public UriQueryParser(String url, Charset charset) { queryStringDecoder = new QueryStringDecoder(url, charset); parameters = queryStringDecoder.parameters(); }
From source file:com.linecorp.armeria.internal.AnnotatedHttpServiceParamUtil.java
License:Apache License
/** * Returns a map of parameters decoded from a request. * * <p>Usually one of a query string of a URI or URL-encoded form data is specified in the request. * If both of them exist though, they would be decoded and merged into a parameter map.</p> * * <p>Names and values of the parameters would be decoded as UTF-8 character set.</p> * * @see QueryStringDecoder#QueryStringDecoder(String, boolean) * @see HttpConstants#DEFAULT_CHARSET/*from w ww .jav a2 s . c o m*/ */ public static HttpParameters httpParametersOf(ServiceRequestContext ctx, HttpHeaders reqHeaders, @Nullable AggregatedHttpMessage message) { try { Map<String, List<String>> parameters = null; final String query = ctx.query(); if (query != null) { parameters = new QueryStringDecoder(query, false).parameters(); } if (aggregationAvailable(reqHeaders)) { assert message != null; final String body = message.content().toStringAscii(); if (!body.isEmpty()) { final Map<String, List<String>> p = new QueryStringDecoder(body, false).parameters(); if (parameters == null) { parameters = p; } else if (p != null) { parameters.putAll(p); } } } if (parameters == null || parameters.isEmpty()) { return EMPTY_PARAMETERS; } return HttpParameters.copyOf(parameters); } catch (Exception e) { // If we failed to decode the query string, we ignore the exception raised here. // A missing parameter might be checked when invoking the annotated method. logger.debug("Failed to decode query string: {}", e); return EMPTY_PARAMETERS; } }
From source file:com.sample.HelloWorldWithJavaScript.PingVerticle.java
License:Apache License
void startHttpServer() { final EventBus eb = vertx.eventBus(); final Yoke app = new Yoke(this); app.secretSecurity("keyboard cat"); final Middleware RequiredAuth = new Middleware() { @Override/*from w w w . j a va 2 s . co m*/ public void handle(@NotNull final YokeRequest request, @NotNull final Handler<Object> next) { SessionObject session = request.get("session"); if (session != null) { if (session.getString("id") != null) { next.handle(null); return; } } request.response().redirect("/examples"); } }; final Mac hmac = app.security().getMac("HmacSHA256"); app.use(new Favicon()).store(new InMemorySessionStore()).engine(new StringPlaceholderEngine("webroot")) .use(new BodyParser()).use(new CookieParser(hmac)).use(new Session(hmac)) .use(new Static("webroot/examples")).use(new Router().get("/examples", new Handler<YokeRequest>() { @Override public void handle(YokeRequest request) { System.out.println("ex:" + Thread.currentThread().getId()); request.response().render("examples/login.shtml"); } }) .get("/profile", RequiredAuth, new Middleware() { @Override public void handle(final YokeRequest request, Handler<Object> next) { SessionObject session = request.get("session"); System.out.println("lo:" + Thread.currentThread().getId()); for (String key : session.getFieldNames()) { request.put(key, session.getString(key)); } request.response().render("examples/profile.shtml"); } }) .get(".*", new Handler<YokeRequest>() { public void handle(YokeRequest req) { req.response().sendFile("webroot/" + req.path()); } }) .post("/login", new Middleware() { @Override public void handle(final YokeRequest request, Handler<Object> next) { System.out.println("lo:" + Thread.currentThread().getId()); final JsonObject session = request.createSession(); if (request.body() != null) { eb.send("test.address", "This is a message", new Handler<Message<String>>() { public void handle(Message<String> message) { System.out.println("I received a reply " + message.body()); QueryStringDecoder qsd = new QueryStringDecoder( request.body().toString(), false); Map<String, List<String>> params = qsd.parameters(); System.out.println(request.body()); for (Map.Entry<String, List<String>> entry : params.entrySet()) { session.putString(entry.getKey().toString(), entry.getValue().toString()); request.put(entry.getKey().toString(), entry.getValue().toString()); } request.response().render("examples/welcome.shtml"); } }); } else { eb.send("test.address", "This is a message", new Handler<Message<String>>() { public void handle(Message<String> message) { System.out.println("I received a reply " + message.body()); System.out.println(request.formAttributes()); for (Map.Entry entry : request.formAttributes().entries()) { session.putString(entry.getKey().toString(), entry.getValue().toString()); request.put(entry.getKey().toString(), entry.getValue().toString()); } request.put("tag", "<button class='ui active button' id='One'>${name}${name}</button>"); request.response().render("examples/welcome.shtml"); } }); } } }) ).listen(9090); }
From source file:com.sample.HelloWorldWithUnity3d.PingVerticle.java
License:Apache License
void startHttpServer() { HttpServer server = vertx.createHttpServer(); RouteMatcher routeMatcher = new RouteMatcher(); routeMatcher.get("/", new Handler<HttpServerRequest>() { public void handle(HttpServerRequest req) { req.response().headers().set("Content-Type", "text/html; charset=UTF-8"); System.out.println("Hello World!"); TestReq fooBarMessage = new TestReq(); fooBarMessage.key = 123456789; fooBarMessage.value = "abc"; ByteArrayOutputStream outStream = new ByteArrayOutputStream(256); TProtocol tProtocol = new TBinaryProtocol(new TIOStreamTransport(null, outStream)); try { fooBarMessage.write(tProtocol); } catch (TException e1) { // TODO Auto-generated catch block e1.printStackTrace();/*w w w . j av a 2s .com*/ } byte[] content = outStream.toByteArray(); tProtocol = new TBinaryProtocol(new TIOStreamTransport(new ByteArrayInputStream(content), null)); TestReq fooBarMessage2 = new TestReq(); try { fooBarMessage2.read(tProtocol); } catch (TException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { // Session session = HibernateUtil.getCurrentSession(); MyTestTable entity = (MyTestTable) session.get(MyTestTable.class, 1); entity.setName("bbb"); Transaction tx = session.beginTransaction(); session.update(entity); tx.commit(); req.response().end("Hello World " + entity.getName()); } catch (HibernateException e) { e.printStackTrace(); } finally { // HibernateUtil.closeSession(); } } }); routeMatcher.get("/login", new Handler<HttpServerRequest>() { public void handle(HttpServerRequest req) { try { String sid = GetSessionId(req); if (sid == null) { req.response().headers().set("Set-Cookie", ServerCookieEncoder.encode(new DefaultCookie("sessionId", generateSessionId()))); } KeyPair keyPair = RSA.CreateKeyPair(); PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); RSAPublicKeySpec publicSpec = RSA.GetPublicKeySpec(keyPair); byte[] publicKeyModulus = publicSpec.getModulus().toByteArray(); byte[] publicKeyExponent = publicSpec.getPublicExponent().toByteArray(); // test byte[] encryptedData = RSA.Encrypt(publicKey, "haha!"); String decryptedText = RSA.DecryptToString(privateKey, encryptedData); JsonObject json = new JsonObject(); json.putBinary("publicKeyModulus", publicKeyModulus); json.putBinary("publicKeyExponent", publicKeyExponent); UserSession userSession = new UserSession(); userSession.privateKey = privateKey; vertx.sharedData().getMap("1").put("userSession", userSession); req.response().end(json.toString()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); routeMatcher.post("/hello", new Handler<HttpServerRequest>() { public void handle(final HttpServerRequest req) { String sid = GetSessionId(req); req.bodyHandler(new Handler<Buffer>() { @Override public void handle(Buffer buff) { String contentType = req.headers().get("Content-Type"); if ("application/octet-stream".equals(contentType)) { /* QueryStringDecoder qsd = new QueryStringDecoder(buff.toString(), false); Map<String, List<String>> params = qsd.parameters(); System.out.println(params); */ UserSession userSession = (UserSession) vertx.sharedData().getMap("1") .get("userSession"); try { String decryptedText = RSA.DecryptToString(userSession.privateKey, buff.getBytes()); JsonObject json = new JsonObject(); json.putString("decryptedText", decryptedText); req.response().end(json.toString()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }); } }); routeMatcher.post("/name/:name", new Handler<HttpServerRequest>() { public void handle(final HttpServerRequest req) { req.bodyHandler(new Handler<Buffer>() { @Override public void handle(Buffer buff) { QueryStringDecoder qsd = new QueryStringDecoder(buff.toString(), false); Map<String, List<String>> params = qsd.parameters(); System.out.println(params); req.response().end("Your name is " + req.params().get("name")); } }); } }); routeMatcher.put("/age/:age", new Handler<HttpServerRequest>() { public void handle(final HttpServerRequest req) { req.bodyHandler(new Handler<Buffer>() { @Override public void handle(Buffer buff) { QueryStringDecoder qsd = new QueryStringDecoder(buff.toString(), false); Map<String, List<String>> params = qsd.parameters(); System.out.println(params); if (params.size() > 0) req.response() .end("Your age is " + req.params().get("age") + params.get("name").get(0)); else req.response().end("Your age is " + req.params().get("age")); } }); } }); routeMatcher.get("/json", new Handler<HttpServerRequest>() { public void handle(HttpServerRequest req) { JsonObject obj = new JsonObject().putString("name", "chope"); req.response().end(obj.encode()); } }); server.requestHandler(routeMatcher).listen(808, "localhost"); }
From source file:io.reactivex.netty.samples.SimplePostServer.java
License:Apache License
public HttpServer<ByteBuf, ByteBuf> createServer() { HttpServer<ByteBuf, ByteBuf> server = RxNetty .newHttpServerBuilder(port, new RequestHandler<ByteBuf, ByteBuf>() { @Override/*from w w w.j a v a2 s.com*/ public Observable<Void> handle(HttpServerRequest<ByteBuf> request, final HttpServerResponse<ByteBuf> response) { return request.getContent().map(new Func1<ByteBuf, ByteBuf>() { @Override public ByteBuf call(ByteBuf buf) { ByteBuf buf0 = Unpooled.copiedBuffer(buf); logger.info("buf0 {} refCnt() : {}", buf0.toString(), buf0.refCnt()); return buf0; } }).reduce(new Func2<ByteBuf, ByteBuf, ByteBuf>() { @Override public ByteBuf call(ByteBuf buf1, ByteBuf buf2) { logger.info("reduce"); logger.info("buf1 {} refCnt() : {}", buf1.toString(), buf1.refCnt()); logger.info("buf2 {} refCnt() : {}", buf2.toString(), buf2.refCnt()); ByteBuf buf3 = Unpooled.copiedBuffer(buf1, buf2); buf1.release(); logger.info("buf1 release"); logger.info("buf1 {} refCnt() : {}", buf1.toString(), buf1.refCnt()); buf2.release(); logger.info("buf2 release"); logger.info("buf2 {} refCnt() : {}", buf2.toString(), buf2.refCnt()); logger.info("buf3 {} refCnt() : {}", buf3.toString(), buf3.refCnt()); return buf3; } }).map(new Func1<ByteBuf, Void>() { @Override public Void call(ByteBuf buf4) { String str = buf4.toString(Charset.defaultCharset()); QueryStringDecoder decoder = new QueryStringDecoder(str, false); Map<String, List<String>> map = decoder.parameters(); for (String key : map.keySet()) { System.out.println(key + " : " + map.get(key).get(0)); } // response.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); response.setStatus(HttpResponseStatus.OK); response.writeStringAndFlush("1"); logger.info("buf4 {} refCnt() : {}", buf4.toString(), buf4.refCnt()); buf4.release(); logger.info("buf4 release"); logger.info("buf4 {} refCnt() : {}", buf4.toString(), buf4.refCnt()); return null; } }) // .collect(new Func0<List<String>>() { // // @Override public List<String> call() { // return new ArrayList<>(); // } // }, new Action2<List<String>, ByteBuf>() { // // @Override public void call(List<String> list, ByteBuf buf) { // // System.out.println(list.size() + " , " + buf.toString(Charset.defaultCharset())); // list.add(buf.toString(Charset.defaultCharset())); // } // }) // .map(new Func1<List<String>, Void>() { // // @Override public Void call(List<String> list) { // String str = ""; // for (String s : list) { // str += s; // } // // System.out.println(str); // QueryStringDecoder decoder = new QueryStringDecoder(str, false); // Map<String, List<String>> map = decoder.parameters(); // for (String key : map.keySet()) { // System.out.println(key + " : " + map.get(key).get(0)); // } // response.writeStringAndFlush("1"); // return null; // } // }) .ignoreElements(); } }).pipelineConfigurator(new HttpServerPipelineConfigurator<ByteBuf, ByteBuf>()) // .enableWireLogging(LogLevel.ERROR) .build(); logger.info("Simple POST server started..."); return server; }
From source file:org.commonjava.freeki.rest.GroupContentHandler.java
License:Open Source License
@Routes({ @Route(path = "/wiki/:dir=(.+)/", method = Method.GET), @Route(path = "/wiki/", method = Method.GET), @Route(path = "/wiki", method = Method.GET), @Route(path = "/api/group/:dir=(.+)", method = Method.GET), }) /* @formatter:on */ public void get(final HttpServerRequest req) throws Exception { final String acceptHeader = req.headers().get("Accept"); req.response().setChunked(true);//from ww w .jav a2s . c o m req.response().setStatusCode(200); String dir = req.params().get(DIR.param()); if (dir == null) { dir = "/"; } else if (dir.endsWith("/")) { dir = dir.substring(0, dir.length() - 1); } // System.out.printf( "Directory: %s\n", dir ); final String mimeAccept = acceptHeader == null ? TEXT_HTML.value() : MIMEParse.bestMatch(DIR_ACCEPT, acceptHeader); final ContentType type = ContentType.find(mimeAccept); try { final Group group = store.getGroup(dir); if (group == null) { req.response().setStatusCode(404).setStatusMessage("Not found.").end(); return; } // logger.info( "Got group with %d children:\n\n %s\n\n", group.getChildren() // .size(), join( group.getChildren(), "\n " ) ); Map<String, String> queryParams; if (req.query() != null) { final QueryStringDecoder qsd = new QueryStringDecoder(req.query(), false); queryParams = RequestUtils.toMap(qsd.parameters()); } else { queryParams = Collections.emptyMap(); } final String rendered = engine.render(group, type, queryParams); if (type != null) { req.response().headers().add("Content-Type", type.value()); } if (rendered != null) { req.response().end(rendered); } else { req.response().setStatusCode(500).setStatusMessage("Rendered group has no content.").end(); } } catch (IOException | RenderingException e) { logger.error("Failed to retrieve group: %s. Reason: %s", e, dir, e.getMessage()); throw e; } }