我已经从链接下载了最新的 NanoHTTPD: https://raw.githubusercontent.com/NanoHttpd/nanohttpd/master/core/src/main/java/fi/iki/elonen/NanoHTTPD.java
当处理非常基本的 POST 示例时,调用 session.getParms() 返回空映射。我的代码是:
@Override
public Response serve(IHTTPSession session) {
System.out.println( session.getMethod() + " " + session.getParms() );
return newFixedLengthResponse("Some response.");
}
哪个返回:
{}
触发 nanoHTTPD 的 HTML 代码是:
<html>
<body>
<form action="http://localhost:3388" method="POST">
<input type="text" name="username" value="a" />
<input type="submit" />
</form>
</body>
</html>
一切看起来都很好。您是否在我的代码中看到任何可疑之处,或者只是 nanoHTTPD 不够成熟?
最佳答案
在处理 POST 请求时,您应该在获取参数之前执行 parseBody。
在你的代码中,就像这样:
@Override
public Response serve(IHTTPSession session) {
session.parseBody(new HashMap<String, String>());
System.out.println( session.getMethod() + " " + session.getParms() );
return newFixedLengthResponse("Some response.");
}
关于java - NanoHTTPD 无法处理 POST 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30966361/