java - NanoHTTPD 无法处理 POST 参数

标签 java nanohttpd

我已经从链接下载了最新的 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/

相关文章:

Java/Minecraft - 如何读取/理解数据包

java - Android AssetServer 扩展 NanoHTTPD

android - 在 Android 中使用 NanoHTTPD

java - Eclipse:实时编辑和运行代码

java - Java 和 Android 中的包范围访问

java - 消除数组中重复对象的最佳方法

android - 将从 nanohttpd 的临时目录上传的文件移动到 SD 卡

java - 用于java(文件)的tellg() 和seekg (c++)

javascript - 如何让 NanoHTTPD 响应 AJAX

java - NanoHttpd 在某些请求后似乎停止响应个别客户端