尝试使用 HttpServlet#doPut 从 PUT 请求获取参数:
public void doPut(HttpServletRequest request, HttpServletResponse response) {
String name = request.getParameter("name");
// name is null
}
使用curl发送请求:
curl -X PUT \
--data "name=batman" \
--header "Content-Type: text/plain" http://localhost:8080/sample.html
使用 doGet 和 GET curl 请求效果很好。我错过了什么吗?
根据评论和进一步的研究,我意识到 Servlet 无法假设任何有关放置到服务器上的数据的信息,因此不会解析名称/值对。
以下解决方案似乎是处理通过 PUT 传递的任何数据的正确方法,并且可以解析为 XML、名称/值或其他内容。
BufferedReader br = new BufferedReader(new InputStreamReader(req.getInputStream());
String data = br.readLine();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)