Mercurial Hosting > luan
changeset 1258:e4d7a3114fa8
support "Content-Type: application/json; charset=utf-8"
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 20 Sep 2018 22:11:11 -0600 |
parents | e38f5869e9df |
children | e8020216dee7 |
files | src/luan/webserver/Connection.java src/luan/webserver/RequestParser.java |
diffstat | 2 files changed, 15 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
diff -r e38f5869e9df -r e4d7a3114fa8 src/luan/webserver/Connection.java --- a/src/luan/webserver/Connection.java Thu Sep 20 21:04:41 2018 -0600 +++ b/src/luan/webserver/Connection.java Thu Sep 20 22:11:11 2018 -0600 @@ -88,6 +88,8 @@ parser.parseUrlencoded(); } else if( contentType.startsWith("multipart/form-data;") ) { parser.parseMultipart(); + } else if( contentType.equals("application/json; charset=utf-8") ) { + parser.parseJson(); } else { logger.info("unknown request content-type: "+contentType); }
diff -r e38f5869e9df -r e4d7a3114fa8 src/luan/webserver/RequestParser.java --- a/src/luan/webserver/RequestParser.java Thu Sep 20 21:04:41 2018 -0600 +++ b/src/luan/webserver/RequestParser.java Thu Sep 20 22:11:11 2018 -0600 @@ -264,4 +264,17 @@ } } + // improve later + void parseJson() throws UnsupportedEncodingException { + if( request.body == null ) { + logger.warn("body is null\n"+request.rawHead); + return; + } + String contentType = (String)request.headers.get("content-type"); + if( !contentType.equals("application/json; charset=utf-8") ) + throw new RuntimeException(contentType); + String value = new String(request.body,"utf-8"); + Util.add(request.parameters,"json",value); + } + }