您的位置:首页 > 理论基础 > 计算机网络

解决:Rest类无法取得HTTP PUT请求发送的参数

2013-11-25 11:29 316 查看


rest类通过String id = request.getParameter("id");可以取得url传递过来的id参数值

但是,Put中的参数无法取得,如下



以下内容来自:http://dbscx.iteye.com/blog/828167

PUT和POST的定义:

使用PUT和POST插入新资源方面所起的作用的争议。HTTP1.1协议中都有新增和更新的定义。

由于所有的浏览器在提交 HTML 表单数据时都不支持 PUT方法(支持 GET和 POST),所以很难确定在哪种情况下使用哪种方法最为明智。

RESTful的定义是:

GET用于检索已知的 Resource 表示。

POST用于创建新的、动态命名的 Resource。

PUT用于编辑已知 Resource。不用它来创建 Resource。

DELETE用于删除已知 Resource。

问题:

HTTP协议PUT方法使用HTTP BODY提交参数时,使用tomcatAPI,httprequest.getParameter();无法获得参数值。

注:若采用GET方法的URL后带参数,可以获得参数值。

原因:

可能是API只能解析GET、POST方式的表单提交。其他一些传统的MVC框架也有类似现象

解决:

Java代码


protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

BufferedReader in = new BufferedReader(new InputStreamReader(req.getInputStream()));

String line;

while ((line = in.readLine()) != null)

System.out.println(line);

}

使用原始的输入流手动解析传入参数。

获取HTTP请求类型,比如:GET、POST、PUT、DELETE等

HttpServletRequest request;

request.getMethod();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐