我已经从链接:https://raw.githubusercontent.com/NanoHttpd/nanohttpd/master/core/src/main/java/fi/iki/elonen/NanoHTTPD.java下载了最新的NanoHTTPD
在处理非常基本的POST示例时,调用session.getParms()会返回空的map。我的代码是:
@Override
public Response serve(IHTTPSession session) {
System.out.println( session.getMethod() + " " + session.getParms() );
return newFixedLengthResponse("Some response.");
}它返回:
{}触发nanoHTTPD的代码是:
<html>
<body>
<form action="http://localhost:3388" method="POST">
<input type="text" name="username" value="a" />
<input type="submit" />
</form>
</body>
</html>这一切看起来都不错。你是否在我的代码中看到了什么可疑的东西,或者仅仅是nanoHTTPD还不够成熟?
发布于 2016-01-04 14:10:26
在处理POST请求时,应该在get参数之前执行parseBody。
在你的代码中,就像这样:
@Override
public Response serve(IHTTPSession session) {
session.parseBody(new HashMap<String, String>());
System.out.println( session.getMethod() + " " + session.getParms() );
return newFixedLengthResponse("Some response.");
}发布于 2016-02-01 03:10:58
仅当上载一个或多个文件时才需要session.parseBody()。除了必须在html表单标记中提供enctype="multipart/ form -data“之外,您的代码都很好。所以你的html代码应该是:
<html>
<body>
<form action="http://localhost:3388" enctype="multipart/form-data" method="POST">
<input type="text" name="username" value="a" />
<input type="submit" />
</form>
</body>
</html>
https://stackoverflow.com/questions/30966361
复制相似问题