当前位置: 移动技术网 > IT编程>开发语言>Java > SpringMvc获取请求头请求体消息过程解析

SpringMvc获取请求头请求体消息过程解析

2020年09月18日  | 移动技术网IT编程  | 我要评论
spring mvc 通过分析处理方法的签名,将 http 请求信 息绑定到处理方法的相应入参中。 spring mvc 对控制器处理方法签名的限制是很宽松的, 几乎可以按喜欢的任何方式对方法进行签

spring mvc 通过分析处理方法的签名,将 http 请求信 息绑定到处理方法的相应入参中。

  • spring mvc 对控制器处理方法签名的限制是很宽松的, 几乎可以按喜欢的任何方式对方法进行签名。
  • 必要时可以对方法及方法入参标注相应的注解(@pathvariable、@requestparam、@requestheader等)、spring mvc 框架会将 http 请求的信息绑定到相应的方法入参 中,并根据方法的返回值类型做出相应的后续处理。

  对接第三方服务,说传递的post请求中,request header中有需要的参数,request body为xml格式,包括创建消息正文和属性。

  刚开始我以为可以通过 httpservletrequest 来获取到requestbody 中的内容的,比如request.getparameter("topicowner"); 可以取到需要的参数,简直 too yang。

  应该是通过 @requestbody string body 这样的注解来完成的,得到的是string 字符串

  描述的是:request body为xml格式。那么怎么可能通过getparameter 获取到参数呢。只能得到body的string格式啊,然后再自己解析

  这么一个坑还烧了那么多脑细胞。。。

  同样@requestheader("authorization") string authorization, 可以很方便的获取到requestheader ,但是只能一个一个获取

  可以通过httpservletrequest 获取到所有的requestheader,如下:

enumeration<string> headernames = request.getheadernames();
while (headernames.hasmoreelements()) {
  //获取每个请求头名称
  string headername = headernames.nextelement();
  //跟距请求头获取请求值
  string value = request.getheader(headername);
  system.out.println(headername + " : " + value);
  log.error(headername + " : " + value);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网