国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

4、SpringBoot接收和響應(yīng)xml報(bào)文請(qǐng)求

這篇具有很好參考價(jià)值的文章主要介紹了4、SpringBoot接收和響應(yīng)xml報(bào)文請(qǐng)求。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

背景

平時(shí)開(kāi)發(fā)的接口,基本是使用 json 格式的請(qǐng)求報(bào)文。然而,有時(shí)候也避免不了有 xml 報(bào)文請(qǐng)求的場(chǎng)景,最近就遇到了這種情況,在此記錄下。另外,工程中使用的是 controller-service……這種結(jié)構(gòu)。

xml請(qǐng)求報(bào)文:

<?xml?version="1.0"?encoding="UTF-8"??>

<req>

??<tel>15556905765</tel>

??<activityid></activityid>

??<timestamp>1603383430</timestamp>

</req>

xml響應(yīng)報(bào)文:

<?xml?version="1.0"?encoding="UTF-8"??>

<resp>

????<code>200</code>

????<msg></msg>

????<activeflag></activeflag>

</resp>

實(shí)現(xiàn)步驟

第一步,引入必需依賴

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.10</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-xml</artifactId>
    <version>2.14.1</version>
</dependency>

在 jackson-dataformat-xml 包里提供了一系列的 json 與 xml 互轉(zhuǎn)的 API。當(dāng)定義請(qǐng)求或響應(yīng)類(lèi)時(shí),使用 @JacksonXml 開(kāi)頭的注解,可以實(shí)現(xiàn) xml 標(biāo)簽字段與 javabean 字段之間的映射。

第二步,自定義請(qǐng)求類(lèi)和響應(yīng)類(lèi)

自定義請(qǐng)求類(lèi):

@Data
@JacksonXmlRootElement(localName = "req")
public class TestRequest {
    //手機(jī)號(hào)
    @JacksonXmlProperty(localName = "tel")
    private String tel;

    //活動(dòng)商品ID
    @JacksonXmlProperty(localName = "activityId")
    private String productId;

    @JacksonXmlProperty(localName = "timestamp")
    private Long timestamp;
}

自定義響應(yīng)類(lèi):

@Data
@JacksonXmlRootElement(localName = "resp")
public class TestResponse {
    //返回碼
    @JacksonXmlProperty(localName = "code")
    private String code;

    //返回碼信息描述
    @JacksonXmlProperty(localName = "msg")
    private String msg;

    //可參與活動(dòng)標(biāo)志 :1-可參與 2-不可參與
    @JacksonXmlProperty(localName = "activeflag")
    private String activeFlag;
}

注意,當(dāng)xml與實(shí)體類(lèi)的一些字段名稱相同時(shí),這些字段可以不使用@JacksonXmlProperty注解。

第三步,編寫(xiě)控制器類(lèi)和業(yè)務(wù)邏輯

TestController:

@RestController
public class TestController {
    @Resource
    private TestService testService;

    @PostMapping(value = "/test"
            , produces = MediaType.APPLICATION_XML_VALUE)
    public String test(@RequestBody TestRequest request)
    {
        return testService.service(request);
    }
}

TestService:

@Slf4j
@Service
public class TestService {

    public String service(TestRequest request){

        //request入?yún)⑿r?yàn) .... 省略

        //正常情況
        TestResponse response = new TestResponse();
        response.setCode("200");
        response.setMsg("allow sub");
        response.setActiveFlag("1");
        return javaBeanToXml(response);
    }
}

第四步,編寫(xiě) javabean 轉(zhuǎn) xml 方法

//XML文件頭
private static final String XML_HEAD = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";

public static String javaBeanToXml(Object obj)
{
    String xml = "";
    if (Objects.isNull(obj))
    {
        return xml;
    }
    try
    {
        XmlMapper xmlMapper = new XmlMapper();
        xml = xmlMapper.writeValueAsString(obj);
    } catch (Exception e)
    {
        log.error("javaBeanToXml error, obj={}, xml={}", obj, xml, e);
        return "";
    }
    // 添加xml文件頭
    return XML_HEAD + xml;
}

自測(cè)

這里,使用 postman 工具測(cè)試(Body->raw->XML)

效果如下:
springboot xml請(qǐng)求,Spring全家桶,Java,XML請(qǐng)求與響應(yīng),XML與JSON互轉(zhuǎn)

?特此記錄下,就這樣~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-526449.html

到了這里,關(guān)于4、SpringBoot接收和響應(yīng)xml報(bào)文請(qǐng)求的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot接收請(qǐng)求參數(shù)的方式

    SpringBoot接收請(qǐng)求參數(shù)的方式

    因?yàn)镾pringBoot封裝了Servlet,所以也允許使用HttpServletRequest類(lèi)中的方法來(lái)獲取 使用postman發(fā)送:http://localhost:8080/demo01?name=張三age=30,查看結(jié)果 springboot允許直接使用參數(shù)獲取,簡(jiǎn)單優(yōu)雅;另外,還也可使用“@RequestParam”注解給參數(shù)設(shè)置別名,這樣頁(yè)面提交的參數(shù)名使用別名也能

    2024年02月16日
    瀏覽(23)
  • SpringBoot - Post請(qǐng)求-接收參數(shù)

    SpringBoot - Post請(qǐng)求-接收參數(shù)

    1、下面樣例?Controller?接收?form-data?格式的?POST?數(shù)據(jù): 2、下面是一個(gè)簡(jiǎn)單的測(cè)試樣例: 1 、如果沒(méi)有傳遞參數(shù) ? Controller ? 將會(huì)報(bào)錯(cuò),這個(gè)同樣有如下兩種解決辦法: 使用 ?required = false? 標(biāo)注參數(shù)是非必須的。 使用 ? defaultValue ? 給參數(shù)指定個(gè)默認(rèn)值。 2、下面是一個(gè)簡(jiǎn)

    2024年02月08日
    瀏覽(24)
  • SpringBoot如何優(yōu)雅接收前端請(qǐng)求參數(shù)

    @RequestParm 我們可以通過(guò) @RequestParm 注解去綁定請(qǐng)求中的參數(shù),將(查詢參數(shù)或者form表單數(shù)據(jù))綁定到controller的方法參數(shù)中,通俗點(diǎn)說(shuō)就是,我們可以在get請(qǐng)求和post請(qǐng)求中使用改注解,get請(qǐng)求中會(huì)從查詢參數(shù)中獲取參數(shù),post請(qǐng)求會(huì)從form表單或者查詢參數(shù)中獲取參數(shù) 默認(rèn)情況

    2024年02月11日
    瀏覽(18)
  • SpringBoot——請(qǐng)求-Postman工具-6種常見(jiàn)請(qǐng)求參數(shù)接收

    SpringBoot——請(qǐng)求-Postman工具-6種常見(jiàn)請(qǐng)求參數(shù)接收

    前后端分離開(kāi)發(fā)的情況下每開(kāi)發(fā)一個(gè)功能都要對(duì)接口進(jìn)行測(cè)試,通常都會(huì)去瀏覽器訪問(wèn)測(cè)試,但是這樣子都是get請(qǐng)求,測(cè)試不了post請(qǐng)求。 postman可以模擬瀏覽器發(fā)起任何形式的http請(qǐng)求 ,下載完postman后登陸進(jìn)去 創(chuàng)建一個(gè)workspace ? 這部分在Javaweb——Request通用方式獲取請(qǐng)求參數(shù)

    2024年02月02日
    瀏覽(62)
  • SpringBoot請(qǐng)求響應(yīng)

    SpringBoot請(qǐng)求響應(yīng)

    Controller方法形參中聲明httpServletRequest對(duì)象 調(diào)用對(duì)象的getParameter參數(shù)名 請(qǐng)求參數(shù)名與方法形變量名相同 自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換 如果遇到參數(shù)名稱不匹配的問(wèn)題,可以用@RequestParam進(jìn)行映射 注意,當(dāng)啟用了RequestParam,你需要知道RequestParam的required屬性默認(rèn)是true,代表請(qǐng)求參數(shù)必須傳

    2024年02月12日
    瀏覽(21)
  • Springboot調(diào)整接口響應(yīng)返回時(shí)長(zhǎng)詳解(解決響應(yīng)超時(shí)問(wèn)題)_springboot設(shè)置請(qǐng)求超時(shí)時(shí)間

    1、配置Http會(huì)話超時(shí) 可以通過(guò)兩種方式為Spring Boot應(yīng)用程序 配置HTTP會(huì)話超時(shí) 。 1.1 application.properties中配置會(huì)話超時(shí) 最簡(jiǎn)單的方法是在你的application.properties中加入?yún)?shù) server.servlet.session.timeout 。 還要注意的是, Tomcat不允許你將超時(shí)時(shí)間設(shè)置得少于60秒 。 1.2 以程序方式配置會(huì)

    2024年04月27日
    瀏覽(114)
  • 前端發(fā)起請(qǐng)求,后臺(tái)springboot無(wú)響應(yīng)

    前端發(fā)起請(qǐng)求,后臺(tái)springboot無(wú)響應(yīng)

    1.檢查是不是HTTPS請(qǐng)求 2.檢查域名有沒(méi)有放到開(kāi)發(fā)者工具的合法域名中 3.檢查POST請(qǐng)求的content-type類(lèi)型是不是application/x-www-form-urlencoded和application/json 4.檢查請(qǐng)求get或者post 有沒(méi)有大寫(xiě) POST 因?yàn)楣镜姆?wù)器是window系統(tǒng),所以在部署項(xiàng)目的時(shí)候使用命令行java -jar 的方式去運(yùn)行,這個(gè)

    2023年04月09日
    瀏覽(20)
  • 《二》HTTP 請(qǐng)求報(bào)文和響應(yīng)報(bào)文、請(qǐng)求方法、狀態(tài)碼

    《二》HTTP 請(qǐng)求報(bào)文和響應(yīng)報(bào)文、請(qǐng)求方法、狀態(tài)碼

    請(qǐng)求報(bào)文: 客戶端向服務(wù)器發(fā)送的請(qǐng)求信息,就叫做請(qǐng)求報(bào)文。 客戶端發(fā)送一個(gè) HTTP 請(qǐng)求到服務(wù)器,請(qǐng)求信息包含四部分:請(qǐng)求行、請(qǐng)求頭、空行、請(qǐng)求體。 請(qǐng)求行:包含三部分,分別是請(qǐng)求方法、請(qǐng)求資源的路徑、協(xié)議版本。 請(qǐng)求頭:頭信息,告訴服務(wù)器一些信息,在客

    2023年04月26日
    瀏覽(27)
  • Node.js-http模塊服務(wù)端請(qǐng)求與響應(yīng)操作,請(qǐng)求報(bào)文與響應(yīng)報(bào)文

    Node.js-http模塊服務(wù)端請(qǐng)求與響應(yīng)操作,請(qǐng)求報(bào)文與響應(yīng)報(bào)文

    簡(jiǎn)單案例創(chuàng)建HTTP服務(wù)端: 端口號(hào)被占用: 1.關(guān)閉當(dāng)前正在運(yùn)行監(jiān)聽(tīng)端口的服務(wù) 2.修改其他的端口號(hào) 獲取請(qǐng)求方式類(lèi)型 獲取請(qǐng)求的 url 地址 通過(guò)實(shí)例化 URl 對(duì)象獲取路徑與查詢字符串 獲取 http 協(xié)議的版本號(hào) 獲取 http 的請(qǐng)求頭 響應(yīng)報(bào)文組成: 1.響應(yīng)行 :包含:HTTP 版本號(hào)、響

    2024年02月14日
    瀏覽(23)
  • SpringBoot3 響應(yīng)式網(wǎng)絡(luò)請(qǐng)求客戶端

    ?SpringBoot是一個(gè)基于Spring的快速開(kāi)發(fā)框架,它可以幫助我們快速構(gòu)建、部署和運(yùn)行Java應(yīng)用程序。HTTP接口是Web應(yīng)用程序與外部系統(tǒng)進(jìn)行通信的一種方式,通過(guò)HTTP協(xié)議,我們可以實(shí)現(xiàn)客戶端與服務(wù)器之間的數(shù)據(jù)交互。 SpringBoot 整合提供了很多方式進(jìn)行遠(yuǎn)程調(diào)用 輕量級(jí)客戶端方

    2024年02月15日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包