解决: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();
相关文章推荐
- 解决AJAX发送PUT和DELETE请求,后台无法接收到参数
- 解决 AngularJs $http 发送post,get请求,SpringMvc无法接受参数的问题。
- 解决Ajax发送REST DELETE请求时无法传参数的问题
- 解决Ajax发送DELETE请求时无法传参数的问题
- 解决Http PUT请求方式无法表单传参问题
- HttpURLConnection 发送PUT请求,设置请求头参数 json请求体
- AngularJS出现$http异步后台无法获取请求参数问题的解决方法
- AngularJs中$http发送post或者get请求,SpringMVC后台接收不到参数值的解决办法
- java 接受和发送http,post,get请求,参数中文乱码解决。
- js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服务器模拟cookie发送 实习期学到的技术(一) LinqPad的变量比较功能 ASP.NET EF 使用LinqPad 快速学习Linq
- .net http发送put、delete请求报405错误解决办法
- HttpURLConnection发送PUT请求,设置请求头参数 json请求体
- AngularJs中$http发送post或者get请求,SpringMVC后台接收不到参数值的解决办法
- CodeIgniter RestServer中put请求获取不到参数的问题解决
- angular的$http发送post,get请求无法传送参数的问题
- springmvc put请求无法解析请求体参数解决办法
- Android/java 利用HttpUrlConnection 发送put请求,携带json参数
- HttpURLConnection 发送PUT请求,设置请求头参数 json请求体
- 发送DELETE或PUT请求时springmvc获取参数为NULL
- IE浏览器中XMLHttpRequest对同一个URL只发送一个请求问题的解决。