Java爱好者 - 专注于Java技术Java爱好者 - 专注于Java技术

SpringMVC 用http请求的Get和Post

SpringMVC 用http请求的Get和Post的注解

两种 HTTP 请求方法:GET 和 POST

在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。

  • GET - 从指定的资源请求数据。
  • POST - 向指定的资源提交要被处理的数据

注:尽量使用以上规则

 

GET 方法

请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的:

/test/demo_form.asp?name1=value1&name2=value2
有关 GET 请求的其他一些注释:
  • GET 请求可被缓存
  • GET 请求保留在浏览器历史记录中
  • GET 请求可被收藏为书签
  • GET 请求不应在处理敏感数据时使用
  • GET 请求有长度限制
  • GET 请求只应当用于取回数据

POST 方法

请注意,查询字符串(名称/值对)是在 POST 请求的 HTTP 消息主体中发送的:

POST /test/demo_form.asp HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
有关 POST 请求的其他一些注释:
  • POST 请求不会被缓存
  • POST 请求不会保留在浏览器历史记录中
  • POST 不能被收藏为书签
  • POST 请求对数据长度没有要求

 

GET

@RequestMapping(value="/doGet",method=RequestMethod.GET)

Post

@RequestMapping(value="/doGet",method=RequestMethod.POST)

同一请求地址访问的方法也就不同了!

注意:如果不书写method=RequestMethod.POST的话,GET和POST请求都支持

以下是JAVA例子:

@Controller
@RequestMapping("/messageProcessing")
public class WechatPushController {
    @Autowired
    private WechatPushService wechatPushService;
    @Autowired
    private WechatOAuthService wechatOAuthService;
    @Autowired
    private WechatUserService wechatUserService;
    /**
     * 确认请求来自微信服务器
     */
    @RequestMapping(value="/doGet",method=RequestMethod.GET)
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 微信加密签名  
        String signature = request.getParameter("signature");
        // 时间戳  
        String timestamp = request.getParameter("timestamp");
        // 随机数  
        String nonce = request.getParameter("nonce");
        // 随机字符串  
        String echostr = request.getParameter("echostr");
        PrintWriter out = response.getWriter();
        // 通过检验signature对请求进行校验,若校验成功则原样返回echostr,表示接入成功,否则接入失败  
        if (WechatSignUtil.checkSignature(signature, timestamp, nonce)) {
            out.print(echostr);
        }
        out.close();
        out = null;
    }
    /**
     * 处理微信服务器发来的消息
     */
    @RequestMapping(value="/doGet",method=RequestMethod.POST)
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 将请求、响应的编码均设置为UTF-8(防止中文乱码)
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        // 调用核心业务类接收消息、处理消息
        String respMessage = wechatPushService.processRequest(request);
        // 响应消息
        PrintWriter out = response.getWriter();
        out.print(respMessage);
        out.close();
    }
本原创文章未经允许不得转载 | 当前页面:Java爱好者 - 专注于Java技术 » SpringMVC 用http请求的Get和Post

评论

文章评论已关闭!