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

wordpress 知更鸟5.2seo优化文章网站

wordpress 知更鸟5.2,seo优化文章网站,游戏网站建设平台,网站诊断表42、响应处理源码分析浏览器与PostMan内容协商完全适配 要实现浏览器与PostMan在内容协商上的完全适配,需要在Spring Boot应用中自定义内容协商策略,确保服务器能根据浏览器和PostMan的请求头正确返回合适格式的数据。以下是详细的步骤: ### …

42、响应处理源码分析浏览器与PostMan内容协商完全适配

要实现浏览器与PostMan在内容协商上的完全适配,需要在Spring Boot应用中自定义内容协商策略,确保服务器能根据浏览器和PostMan的请求头正确返回合适格式的数据。以下是详细的步骤:

### 1. 理解内容协商

**内容协商**是HTTP协议中的一种机制,允许服务器根据客户端的请求头信息(如`Accept`、`Accept-Language`、`Accept-Encoding`等),选择最合适的响应内容格式。例如,客户端可以通过`Accept`头指定希望接收的数据格式,如`application/json`或`application/xml`。

### 2. 默认内容协商行为

Spring Boot默认使用`HeaderContentNegotiationStrategy`,根据请求头中的`Accept`字段进行内容协商。但对于浏览器请求,通常不显式设置`Accept`头,Spring Boot会默认返回HTML格式。

### 3. 自定义内容协商策略

为了实现浏览器与PostMan的完全适配,可以添加基于请求参数的内容协商策略,同时保留基于请求头的策略。

#### 步骤1:引入依赖

如果需要支持XML格式,引入Jackson的XML处理模块:

```xml

<dependency>

    <groupId>com.fasterxml.jackson.dataformat</groupId>

    <artifactId>jackson-dataformat-xml</artifactId>

</dependency>

```

#### 步骤2:配置内容协商

创建配置类,自定义内容协商策略:

```java

@Configuration

public class WebConfig implements WebMvcConfigurer {

    @Override

    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {

        // 定义支持的媒体类型和参数映射

        Map<String, MediaType> mediaTypes = new HashMap<>();

        mediaTypes.put("json", MediaType.APPLICATION_JSON);

        mediaTypes.put("xml", MediaType.APPLICATION_XML);

        mediaTypes.put("gg", MediaType.parseMediaType("application/x-guigu")); // 自定义格式

        // 创建基于请求参数的内容协商策略

        ParameterContentNegotiationStrategy parameterStrategy = 

            new ParameterContentNegotiationStrategy(mediaTypes);

        parameterStrategy.setParameterName("format"); // 指定参数名为format

        // 保留基于请求头的策略

        HeaderContentNegotiationStrategy headerStrategy = new HeaderContentNegotiationStrategy();

        // 配置内容协商策略

        configurer.strategies(Arrays.asList(parameterStrategy, headerStrategy));

    }

}

```

#### 步骤3:启用请求参数内容协商(可选)

在`application.properties`中开启基于请求参数的内容协商:

```properties

spring.contentnegotiation.favor-parameter=true

```

### 4. 测试与验证

#### PostMan测试

- 发送GET请求到`http://localhost:8080/test/person`,设置请求头`Accept: application/json`,返回JSON格式数据。

- 发送GET请求到`http://localhost:8080/test/person?format=xml`,返回XML格式数据。

- 发送GET请求到`http://localhost:8080/test/person?format=gg`,返回自定义格式数据。

#### 浏览器测试

- 在浏览器中访问`http://localhost:8080/test/person`,返回HTML格式数据(如果未配置视图解析器,可能报错)。

- 在浏览器中访问`http://localhost:8080/test/person?format=json`,返回JSON格式数据。

- 在浏览器中访问`http://localhost:8080/test/person?format=xml`,返回XML格式数据。

### 5. 注意事项

- **默认行为覆盖**:自定义内容协商策略可能会覆盖默认行为,需确保所有功能正常。

- **媒体类型注册**:确保所有自定义媒体类型在`mediaTypes`中注册。

- **Converter支持**:确保有对应的`MessageConverter`支持转换自定义格式。

通过以上步骤,可以实现浏览器与PostMan在内容协商上的完全适配,根据请求头或请求参数返回合适格式的数据。

http://www.dtcms.com/wzjs/63674.html

相关文章:

  • 长沙中小企业做网站正规电商平台有哪些
  • 建设监理有限责任公司网站seo修改器
  • 互联网站的建设维护营销seo关键词排名优化怎样
  • 怎么做网站客服软件seo流量排名软件
  • 影视 网站建设 新媒体国家免费培训学校
  • 佛山新网站制作怎么样网上怎么做推广
  • 1 网站建设的目标是什么山东seo
  • 知乎 php网站开发书籍_seo是什么服务
  • 怎么做恶搞网站百度查重免费
  • 网站开发设计制作公司百度店铺
  • 做网站怎么选择上市公司网址查询地址查询
  • 小网站开发成本网址提交
  • 柯林wap建站抖音seo运营模式
  • 美团网站网站建设发展搜索引擎优化服务公司哪家好
  • 如何做配音网站app推广平台有哪些
  • 嘉兴网站制作哪家专业百度免费发布信息网站
  • 网站怎么做关键词研究计算机培训班有用吗
  • 网站响应式和非响应式高清网站推广免费下载
  • 网站建设设计原则公司网站建设价格
  • wordpress+机械模板下载扬州百度seo公司
  • 电子商务网站建设的总体设计网络推广的渠道
  • 可以做渗透测试的网站淘宝指数查询工具
  • 重庆网站建设咨询会计培训机构
  • 信云科技的vps怎么做网站宁波seo免费优化软件
  • 学校网站建设申请报告上海网络推广软件
  • 网站域名后缀培训公司排名
  • 学院网站建设服务宗旨东莞今天最新消息新闻
  • 中介网站怎么做网络推广公司方案
  • 比分网站建设专业seo站长工具
  • 北京哪有建网站公司或个人的如何创建网站站点