当前位置: 首页 > news >正文

国际快递网站建设免费b站推广

国际快递网站建设,免费b站推广,31省最新疫情今天,腾讯网站建设的基本情况在我们开发过程中,我们经常使用的参数绝大多少事HTML和JSON格式的请求和响应处理,但是我们在实际开发过程中,我们可能经历一些,比如对于XML格式的请求,我们在后端应该如何接收,并且如何将XML格式的参数变成…

在我们开发过程中,我们经常使用的参数绝大多少事HTML和JSON格式的请求和响应处理,但是我们在实际开发过程中,我们可能经历一些,比如对于XML格式的请求,我们在后端应该如何接收,并且如何将XML格式的参数变成对象,然后返回一个XML对象呢?

实现原理

我们在处理XML格式的数据的时候,需要知道我们最初学习Spring系列中的Spring MVC。因为在Spring MVC中我们有一个消息转换器的概念,其主要负责处理不同格式的请求数据进行处理,然后将这个数据包装成为对象,以便提供更加友好的变成体验。

我们研究Spring MVC的源码可以得到在Spring MVC中定义了一个HttpMessageCoverter接口,抽象了消息转换器对类型的判断,对读写的判断与操作,具体如下:

public interface HttpMessageConverter<T> {boolean canRead(Class<?> clazz, @Nullable MediaType mediaType);boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType);List<MediaType> getSupportedMediaTypes();T read(Class<? extends T> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException;void write(T t, @Nullable MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException;}
  • boolean canRead(Class<?> clazz, @Nullable MediaType mediaType):判断给定的类和媒体类型是否可以被读取。在处理请求时,用于判断是否可以将请求的消息体转换为指定的类对象。
  • boolean canWrite(Class<?> clazz, @Nullable MediaType mediaType):判断给定的类和媒体类型是否可以被写入。在处理响应时,用于判断是否可以将指定的类对象转换为响应的消息体。
  • List<MediaType> getSupportedMediaTypes():获取该消息转换器支持的媒体类型列表。这些媒体类型表示该转换器可以读取或写入的数据格式。
    - Tread(Class<? extends T> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException:将请求的消息体转换为指定的类对象。该方法从 HttpInputMessage 中读取请求的数据,并将其转换为指定的类对象。
  • void write(T t, @Nullable MediaType contentType, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException:将指定的类对象转换为响应的消息体。该方法将指定的类对象转换为字节流,并写入到 HttpOutputMessage 中作为响应的数据。

我们知道,在HTTP中,Content-Type中有各种不同的格式定义,如果需要支持XML格式的消息转换,那就的使用对应的转换器,并且我们知道在Spring MVC中默认已经有一套采用Jackson实现的转换器MappingJackson2XmlHttpMessageConverter

拓展实现

1. 引入XML消息转换器

如果你是Spring 用户,并非Spring Boot用户,那么我们可以引入XML消息转换器。

@Configuration
public class MessageConverterConfig1 extends WebMvcConfigurerAdapter {@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.xml();builder.indentOutput(true);converters.add(new MappingJackson2XmlHttpMessageConverter(builder.build()));}
}

如果你是Spring Boot用户,那么就直接加入相关依赖就行了,那么相关依赖就交于Spring Boot自动实现了:

<dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId>
</dependency>
2. 定义对象与XML的关系

做好了基础配置后,就可以定义XML内容对应的Java对象了:

@Data
@NoArgsConstructor
@AllArgsConstructor
@JacksonXmlRootElement(localName = "User")
public class User {@JacksonXmlProperty(localName = "name")private String name;@JacksonXmlProperty(localName = "age")private Integer age;}

其中:@Data@NoArgsConstructor@AllArgsConstructor是lombok简化代码的注解,主要用于生成get、set以及构造函数。@JacksonXmlRootElement@JacksonXmlProperty注解是用来维护对象属性在xml中的对应关系。

上述配置的User对象,其可以映射的Xml样例如下(后续可以使用上述xml来请求接口):

<User><name>miaow</name><age>4</age>
</User>
3.创建一个接收xml请求的接口

完成了需要转换的对象之后,我们可以编写一个相关接口来接受XML并返回xml。

@Controller
public class UserController {@PostMapping(value = "/user",consumes = MediaType.APPLICATION_XML_VALUE,produces = MediaType.APPLICATION_XML_VALUE)@ResponseBodypublic User create(@RequestBody User user) {user.setName("姓名 : " + user.getName());user.setAge(user.getAge() + 20);return user;}
}

启动项目之后,我们可以通过相关接口工具进行请求发送,例如:
在这里插入图片描述
我采用的事ApiFox这个软件,如果你有更好的软件可以选择您自己的软件

http://www.hengruixuexiao.com/news/30690.html

相关文章:

  • 有没有什么做海报字体的网站东莞全网推广
  • 天河商城网站建设网络广告营销经典案例
  • 没有充值入口的传奇手游淘宝客seo推广教程
  • 那些语言可以做动态网站网站做优化好还是推广好
  • 晋城 网站建设友链交换网站
  • 帮建网站网站推广app
  • 信息型网站有哪些百度云引擎搜索
  • 网站项目报价单模板免费下载最近几天的重大新闻事件
  • 苏州做网站公司乛 苏州聚尚网络网络营销的发展趋势
  • 郑州做网站推广电话百度热议排名软件
  • 厦门商场网站建设营业推广策划
  • 企业网站建设的特点百度一下官网首页下载
  • 保定做网站那家好网站优化是什么意思
  • 什么是营销型的网站企业网站推广
  • 深圳做网站的大公司临沂seo
  • 淘宝网pc首页google关键词优化排名
  • 帝国cms企业门户网站仿站视频教程 网盘百度推广平台登陆
  • 创意包装设计网站网络推广和运营的区别
  • 运动服饰网站建设目的百度的合作网站有哪些
  • 天猫网站怎么做seo 知乎
  • photoshop快捷键命令大全优化seo是什么意思
  • 建设网站青岛seo关键词排名报价
  • 商业网站制作磁力链搜索引擎入口
  • 网站建设中怎么插入视频微营销
  • 校园网网站的安全建设方案宁波超值关键词优化
  • 网页制作的原则是什么seo推广是做什么的
  • 网站定制开发什么意思深圳网站建设推广优化公司
  • 电影网站开发任务书互联网创业项目
  • 软件开发的生命周期广州网站优化费用
  • 网站怎么做微信扫描登录网站百度公司有哪些部门