欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java ApiPost請(qǐng)求返回406狀態(tài)碼問(wèn)題的解決方案

 更新時(shí)間:2025年04月22日 10:07:12   作者:麻辣香蟈蟈  
APIPost是一款專為開(kāi)發(fā)者和測(cè)試人員設(shè)計(jì)的API測(cè)試工具,類似于Postman,但提供了更多的團(tuán)隊(duì)協(xié)作和文檔管理功能,它可以幫助你更好地進(jìn)行接口調(diào)試和集成測(cè)試,但遇到了請(qǐng)求后返回的是406狀態(tài),所以本文給大家介紹了Java ApiPost請(qǐng)求返回406狀態(tài)碼問(wèn)題的解決方案

一、前言

  • 使用ApiPost請(qǐng)求的時(shí)候遇到問(wèn)題記錄
  • 這是記錄思考過(guò)程,看結(jié)果直接看5.1.2小節(jié)

二、學(xué)習(xí)內(nèi)容:

  • 序列化與反序列化
  • 數(shù)據(jù)傳輸

三、問(wèn)題描述

3.1 問(wèn)題截圖

  • 前端請(qǐng)求后返回的是406狀態(tài)

在這里插入圖片描述

3.2 錯(cuò)誤簡(jiǎn)介

3.2.1 HTTP狀態(tài)碼 406 Not Acceptable

  • 客戶端發(fā)送一個(gè)請(qǐng)求,并且在請(qǐng)求頭中指定了一個(gè)或多個(gè)可接受的內(nèi)容類型(通過(guò) Accept 頭字段)
  • ?? 而服務(wù)器無(wú)法提供任何這些類型的內(nèi)容時(shí),就會(huì)返回這個(gè)狀態(tài)碼。

3.2.2 序列化和反序列化

Java中的序列化和反序列化是將對(duì)象轉(zhuǎn)換為字節(jié)流和將字節(jié)流轉(zhuǎn)換回對(duì)象的過(guò)程。

  • 序列化使對(duì)象能夠被存儲(chǔ)到文件、發(fā)送到網(wǎng)絡(luò)中或進(jìn)行其他操作
  • 反序列化則是將這些字節(jié)流恢復(fù)為原來(lái)的對(duì)象。

3.3 后端問(wèn)題位置

后臺(tái)沒(méi)有明顯報(bào)錯(cuò)

@PostMapping("login")
public Result login(@RequestBody AdminLoginDTO adminLoginDTO) {
    log.info("adminLoginDTO:{}", adminLoginDTO);
    String token = adminService.login(adminLoginDTO);
    return Result.success(token);
}

四、解決方案:

4.1 認(rèn)識(shí)問(wèn)題

  • 在Java中,要使一個(gè)對(duì)象可被序列化,必須實(shí)現(xiàn) java.io.Serializable 接口。這個(gè)接口是一個(gè)標(biāo)記接口,不需要實(shí)現(xiàn)任何方法

如圖代碼生成器生成的實(shí)體類就有

在這里插入圖片描述

4.2 解決過(guò)程

4.2.1 查找原因

查找406會(huì)出現(xiàn)的問(wèn)題

客戶端請(qǐng)求頭設(shè)置問(wèn)題

  • 問(wèn)題核心:客戶端請(qǐng)求頭中的 Accept 字段指定的內(nèi)容類型,服務(wù)器無(wú)法提供。

服務(wù)器端配置問(wèn)題

  • 問(wèn)題核心:服務(wù)器沒(méi)有配置正確的消息轉(zhuǎn)換器來(lái)支持客戶端請(qǐng)求的內(nèi)容類型。

不兼容的內(nèi)容類型

  • 問(wèn)題核心:客戶端和服務(wù)器之間存在內(nèi)容類型不兼容的問(wèn)題。 4.2.2 根據(jù)原因檢查代碼錯(cuò)誤

觀察后發(fā)現(xiàn)主要是類型的錯(cuò)誤,不管是客戶端還是服務(wù)器肯定哪里類型轉(zhuǎn)換出了問(wèn)題

  • 可是這些配置一般Spring框架都已經(jīng)配置好了,平時(shí)也沒(méi)遇到這個(gè)問(wèn)題,代碼也是自動(dòng)生成的
  • 所以肯定是自己寫(xiě)的返回的類型少了什么導(dǎo)致無(wú)法轉(zhuǎn)換

4.2.3 定位成功

Result類沒(méi)有使用 getter 和 setter方法

為什么 @Data 注解可以解決問(wèn)題

  • 自動(dòng)生成 gettersetter 方法:@Data 注解自動(dòng)生成了所有屬性的 gettersetter 方法。
  • 序列化和反序列化:使用 @Data 注解后,序列化庫(kù)(如 Jackson 或 Gson)能夠正確識(shí)別并處理這些方法。
    注意是序列化庫(kù)

如圖注解加上或者自己寫(xiě) gettersetter 方法即可

當(dāng)時(shí)只想著后端代碼能用即可,沒(méi)注意傳輸?shù)膯?wèn)題

在這里插入圖片描述

4.3.2.3 結(jié)果

自定義的返回類能正常傳輸

在這里插入圖片描述

五、總結(jié):

5.1 注意事項(xiàng)

5.1.1 序列化 getter 和 setter 方法無(wú)關(guān)

無(wú)論是否有 getter 和 setter 方法,只要類實(shí)現(xiàn)了 Serializable 接口,實(shí)例就能夠被序列化和反序列化。

  • 如果你不使用序列化庫(kù),或者你自定義了序列化和反序列化的方法,那么不使用 getter 和 setter 也是可以的。

5.1.2 Jackson、Gson 等庫(kù)需要注意

本次錯(cuò)誤主要原因: getter 和 setter 方法沒(méi)寫(xiě),序列化的時(shí)候可能訪問(wèn)不到對(duì)象

傳輸使用到了Jackson 庫(kù),所以gettersetter 方法盡量都要寫(xiě)出

在這里插入圖片描述

  • 與序列化庫(kù)的兼容:如 Jackson 和 Gson 等庫(kù)在處理 Java 對(duì)象時(shí),通常會(huì)使用 getter 和 setter 方法來(lái)訪問(wèn)字段的值。如果沒(méi)有這些方法,這些庫(kù)可能無(wú)法正確識(shí)別或處理一些字段。

例子如下:

import com.fasterxml.jackson.databind.ObjectMapper;  

public class Main {  
    public static void main(String[] args) throws Exception {  
        ObjectMapper objectMapper = new ObjectMapper();  
        
        // 創(chuàng)建對(duì)象  
        Person person = new Person();  
        person.setName("Alice");  
        person.setAge(30);  
        
        // 序列化  
        String jsonString = objectMapper.writeValueAsString(person);  
        System.out.println("Serialized JSON: " + jsonString);  
        
        // 反序列化  
        Person deserializedPerson = objectMapper.readValue(jsonString, Person.class);  
        System.out.println("Deserialized Person: " + deserializedPerson);  
    }  
}

聲明:如本內(nèi)容中存在錯(cuò)誤或不準(zhǔn)確之處,歡迎指正。

以上就是Java ApiPost請(qǐng)求返回406狀態(tài)碼問(wèn)題的解決方案的詳細(xì)內(nèi)容,更多關(guān)于Java ApiPost請(qǐng)求返回406的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺談Java中static和非static的區(qū)別

    淺談Java中static和非static的區(qū)別

    這篇文章主要介紹了Java中static和非static的相關(guān)內(nèi)容,小編覺(jué)得還是很不錯(cuò)的,這里分享給大家,需要的朋友可以參考下。
    2017-10-10
  • Java后端傳時(shí)間戳給前端的三種方式

    Java后端傳時(shí)間戳給前端的三種方式

    時(shí)間戳是一份能夠表示一份數(shù)據(jù)在一個(gè)特定時(shí)間點(diǎn)已經(jīng)存在的完整的可驗(yàn)證的數(shù)據(jù),本文給大家介紹了Java后端傳時(shí)間戳給前端的三種方式,并通過(guò)代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-12-12
  • Spring Bean Scope 有狀態(tài)的Bean與無(wú)狀態(tài)的Bean

    Spring Bean Scope 有狀態(tài)的Bean與無(wú)狀態(tài)的Bean

    這篇文章主要介紹了Spring Bean Scope 有狀態(tài)的Bean與無(wú)狀態(tài)的Bean,每個(gè)用戶有自己特有的一個(gè)實(shí)例,在用戶的生存期內(nèi),bean保持了用戶的信息,下面來(lái)了解有狀態(tài)和無(wú)狀態(tài)的區(qū)別吧
    2022-01-01
  • Java關(guān)鍵字final、static使用總結(jié)

    Java關(guān)鍵字final、static使用總結(jié)

    final方法不能被子類的方法覆蓋,但可以被繼承。用static修飾的代碼塊表示靜態(tài)代碼塊,當(dāng)Java虛擬機(jī)(JVM)加載類時(shí),就會(huì)執(zhí)行該代碼塊,下面通過(guò)本文給大家分享Java關(guān)鍵字final、static使用總結(jié),感興趣的朋友一起看看吧
    2017-07-07
  • 異常點(diǎn)/離群點(diǎn)檢測(cè)算法——LOF解析

    異常點(diǎn)/離群點(diǎn)檢測(cè)算法——LOF解析

    這篇文章主要介紹了異常點(diǎn)/離群點(diǎn)檢測(cè)算法——LOF解析,通過(guò)圖解文字描述的方式詳細(xì)的解析了該算法,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 利用SpringMVC接收復(fù)雜對(duì)象和多個(gè)文件(前端使用JQuery)

    利用SpringMVC接收復(fù)雜對(duì)象和多個(gè)文件(前端使用JQuery)

    這篇文章主要介紹了利用SpringMVC接收復(fù)雜對(duì)象和多個(gè)文件(前端使用JQuery),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java中的MapStruct用法詳解

    Java中的MapStruct用法詳解

    這篇文章主要介紹了Java中的MapStruct用法詳解,MapStuct的使用非常簡(jiǎn)單,把對(duì)應(yīng)的jar包引入即可,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • 5分鐘搭建SpringCloud Eureka服務(wù)注冊(cè)中心的實(shí)現(xiàn)

    5分鐘搭建SpringCloud Eureka服務(wù)注冊(cè)中心的實(shí)現(xiàn)

    這篇文章主要介紹了5分鐘搭建SpringCloud Eureka服務(wù)注冊(cè)中心的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • SpringBoot多環(huán)境配置方式的新手教程

    SpringBoot多環(huán)境配置方式的新手教程

    我們平時(shí)做項(xiàng)目的時(shí)候,一般都會(huì)分幾套環(huán)境,每一套環(huán)境的配置都是不一樣的,所以這篇文章就來(lái)為大家詳細(xì)介紹一下SpringBoot多環(huán)境配置方式,希望對(duì)大家有所幫助
    2023-11-11
  • 字節(jié)二面SpringBoot可以同時(shí)處理多少請(qǐng)求

    字節(jié)二面SpringBoot可以同時(shí)處理多少請(qǐng)求

    這篇文章主要為大家介紹了字節(jié)二面之SpringBoot可以同時(shí)處理多少請(qǐng)求面試分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07

最新評(píng)論