`
dbscx
  • 浏览: 74660 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

HTTP协议PUT方法获取参数问题

阅读更多

早上群里有人说POST方法提交改成PUT就获取不到参数。
遂对PUT进行一番研究。

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框架也有类似现象

解决:

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);
}

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









 

0
0
分享到:
评论

相关推荐

    iisputscaner.zip

    这款扫描器的主要目标是发现并报告IIS服务器上可能存在的PUT方法漏洞,PUT方法是HTTP协议中的一个请求方法,允许客户端将数据上传到服务器的指定位置。PUT漏洞通常会导致服务器被恶意用户利用,进行未授权的数据写入...

    关于HTTP协议禁用不常用方法漏洞的解决方案.docx

    2. **TRACE方法**:此方法的设计初衷是为了帮助诊断网络问题,但当启用时,攻击者可以通过发送TRACE请求来获取服务器的响应头信息,这可能导致敏感信息(如认证凭证)的泄露。 #### 解决方案 ##### 一、禁用PUT和...

    https支持put get post请求

    在标题“HTTPS支持PUT GET POST请求”中,主要涉及的是HTTPS协议对HTTP中三种主要请求方法的支持。 1. **GET请求**:这是HTTP中最常见的请求方法,用于从服务器获取资源。用户在浏览器地址栏输入URL,浏览器就会...

    IISPutScanner1.3原版

    PUT是HTTP协议中的一种方法,允许客户端将文件上传到服务器。然而,某些不安全的IIS配置可能导致恶意用户利用PUT方法在未经授权的情况下上传恶意文件,从而对服务器安全构成威胁。 IISPutScanner1.3的出现是为了...

    http接口通用调试工具,支持get、post、put、patch、delete方法

    1. **支持多种HTTP方法**:GET用于获取资源,POST用于提交数据,PUT用于替换已有资源,PATCH用于更新资源,DELETE用于删除资源。这些方法覆盖了大部分API操作的需求。 2. **JSON数据处理**:JSON(JavaScript ...

    HTTP.rar_HTTP协议_http 协议 中文版_http协议 c_http协议 c++

    GET方法用于获取资源,所有的参数都包含在URL中,可见且可缓存;POST方法用于向服务器提交数据,参数在请求体中,更适合发送敏感信息。其他方法包括PUT、DELETE、HEAD、OPTIONS等,它们在不同的场景中有特定用途。 ...

    iisputscaner

    PUT方法在HTTP协议中用于上传资源到服务器,如果服务器未正确配置,允许PUT请求,那么攻击者可能能够上传任意文件,包括Webshell,从而获取服务器控制权。该工具通过批量扫描目标服务器,快速识别出存在此类风险的...

    VC++ HTTP POST/GET/PUT/DELETE实现Rest API操作

    在VC++中,这涉及到构造一个带有所有资源信息的请求,并指定相应的HTTP方法为PUT。 4. **DELETE**:用于删除资源。DELETE请求只需提供资源的标识符,服务器将根据此标识符删除对应的资源。实现DELETE请求时,确保...

    Http协议内容总结 http协议包含哪些内容 Http协议的请求方法 Http协议实现的原理机制 get与post请求的区别

    6. **OPTIONS**:查询响应URI支持的HTTP方法。 #### Http协议实现的原理机制 HTTP协议的工作流程如下: 1. **客户端发起请求**:客户端通过HTTP请求向服务器发送数据。 2. **服务器处理请求**:服务器接收到请求...

    Http协议中文版

    GET方法用于获取资源,请求参数包含在URL中,对数据长度有限制且数据可见。POST方法则常用于提交数据,参数隐藏在请求主体中,可以传输大量数据,相对更安全。 **4. 请求头与响应头** 请求头和响应头包含各种元信息...

    人脸识别一体机HTTP接口协议_v1.34.pdf

    * 请求方法:协议使用HTTP请求方法,包括GET、POST、PUT、DELETE等。 * 数据类型及格式:协议使用JSON格式的数据交换,所有的数据交换都使用UTF-8编码。 * 语法:协议使用简洁、易读的语法,所有的请求和响应都使用...

    RestTemplate的GET方法详解.docx

    RestTemplate是Spring框架中用于处理HTTP客户端操作的重要工具,它提供了多种方法来发送HTTP请求,如GET、POST、PUT等。在本篇文章中,我们将详细探讨两个常用的GET方法:`getForObject()`和`getForEntity()`。 1. ...

    JavaWeb之http协议

    总结,JavaWeb开发中的HTTP协议理解至关重要,它涵盖了请求与响应的结构、HTTP方法、状态码、协议版本等多个方面。同时,通过源码学习和使用工具辅助,我们可以更好地掌握HTTP协议,从而提高JavaWeb应用的开发效率和...

    张孝祥_HTTP协议详解

    三、HTTP方法 HTTP协议定义了多种请求方法,其中最常见的是GET和POST: - GET:获取资源,所有参数都在URL中。 - POST:提交数据到指定资源,通常用于表单提交,数据在请求体中。 四、HTTP状态码 HTTP状态码是...

    基于HTTP协议的开发接口

    1. **HTTP方法**:在开发接口时,常见的HTTP方法有GET、POST、PUT、DELETE等。GET用于获取资源,POST用于提交数据,PUT用于更新资源,而DELETE用于删除资源。根据实际需求选择合适的方法。 2. **请求头**:在HTTP...

    http.rar_put

    1. **HTTP方法**: - GET:从指定的服务器获取资源,是最常见的HTTP请求类型。 - POST:向指定的服务器发送数据,通常用于创建新的资源。 - PUT:用于更新已存在的资源,要求客户端提供完整的新资源数据,若资源...

    http协议 中文版 pdf

    4. **URL**:统一资源定位符(URL)是每个Web资源的唯一地址,包括协议类型(如http或https)、主机名、路径和可能的查询参数。 5. **版本**:HTTP协议有多个版本,最常见的是HTTP/1.1,而HTTP/2引入了多路复用、二...

    HTTP协议原理+实践 Web开发工程师必学

    三、HTTP方法 HTTP定义了多种方法,常见的有GET、POST、PUT、DELETE等: - GET:获取资源,是最常见的请求方法,通常用于从服务器获取数据。 - POST:提交数据到指定的资源,常用于表单提交或上传文件。 - PUT:...

    Http协议中POST和GET方法的本质区别

    在RESTful架构中,HTTP方法的使用更加规范,GET用于查询,POST用于创建,PUT用于更新,DELETE用于删除,这种设计更符合HTTP方法的原意,并有助于构建清晰、可预测的API接口。 总结来说,GET和POST的主要区别在于其...

Global site tag (gtag.js) - Google Analytics