使用nanohttpd,接收易語言的post資料問題
阿新 • • 發佈:2018-12-01
session.parseBody(new HashMap<String, String>());
Map<String, List<String>> map = session.getParameters();
Iterator<String> i = map.keySet().iterator();
String s = i.next();
最後這個s就是post過來的全部資料
易語言的post的頭資訊如下content-length=6431, remote-addr=175.9.235.15, accept-language=zh-cn, http-client-ip=175.9.235.15, host=121.196.238.126:11007, connection=Keep-Alive, content-type=application/x-www-form-urlencoded; Charset=UTF-8, accept=*/*, user-agent=Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; 2Pac; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
資料型別是application/x-www-form-urlencoded,這個要特別注意
易語言給nanohttpd傳輸base64資料的話,先將base64進行url編碼,否則nanohttpd接收到後,會有編碼問題,比如+變成了空格
nanohttpd如果接收的是formdata型別的資料,可以這樣
session.parseBody(new HashMap<String, String>()); Map<String, List<String>> map = session.getParameters(); map.get("paramName").get(0);
paramStr代表的是鍵,後面的0是固定的
String>> map = session.getParameters(); Iterator<String>