第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶查詢參數(shù)的 Spring webflux WebTestClient

帶查詢參數(shù)的 Spring webflux WebTestClient

臨摹微笑 2023-11-01 21:04:53
在我的 webflux 應(yīng)用程序中,我有這個GET端點v3/callback?state=cGF5bWVudGlkPTRiMmZlMG我正在嘗試使用編寫集成測試WebTestClient@Testpublic void happyScenario() {    webTestClient.get().uri("/v3/callback?state=cGF5bWVudGlkPTRiMmZlMG")            .exchange()            .expectStatus()            .isOk();}這個測試用例返回404 notFound,如果我刪除了查詢參數(shù),它將被調(diào)用,但state參數(shù)將丟失我嘗試使用attribute  webTestClient.get().uri("/v3/callback")            .attribute("state","cGF5bWVudGlkPTRiMmZlMG")            .exchange()            .expectStatus()            .isOk();但仍然state缺少參數(shù),使用時如何在請求中包含查詢參數(shù)webTestClient?
查看完整描述

3 回答

?
catspeake

TA貢獻1111條經(jīng)驗 獲得超0個贊

您可以利用UriBuilder.


webTestClient.get()

            .uri(uriBuilder ->

                    uriBuilder

                            .path("/v3/callback")

                            .queryParam("state", "cGF5bWVudGlkPTRiMmZlMG")

                            .build())

            .exchange()

            .expectStatus()

            .isOk();

這應(yīng)該有效。



查看完整回答
反對 回復(fù) 2023-11-01
?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

如果您的查詢參數(shù)值包含大括號,例如如下所示:


webTestClient.get()

    .uri(uriBuilder -> uriBuilder

        .path("/v3/callback")

        .queryParam("query", "{ some { GraphQL { query } } }")

        .build())

    .exchange()

    .expectStatus()

    .isOk();

然后UriBuilder將嘗試對大括號的內(nèi)容進行變量替換,您可能會在調(diào)用時遇到異常build()。為了避免這種情況,請將請求參數(shù)放在單獨的requestParams映射中,并通過build(requestParams)在構(gòu)建時調(diào)用來使用受控變量替換URI:


var requestParams = Map.of(

    "query", "{ some { GraphQL { query } } }"

);


webTestClient.get()

    .uri(uriBuilder -> uriBuilder

        .path("/v3/callback")

        .queryParam("query", "{query}")

        .build(requestParams))

    .exchange()

    .expectStatus()

    .isOk();

另一個提示。如果您發(fā)現(xiàn).uri(uriBuilder -> ...)語法有點復(fù)雜,您可以URI在請求之前顯式準(zhǔn)備:


var requestParams = Map.of(

    "query", "{ some { GraphQL { query } } }"

);


URI uri = new DefaultUriBuilderFactory("/v3/callback")

    .builder()

    .queryParam("query", "{query}")

    .build(requestParams);


webTestClient.get()

    .uri(uri)

    .exchange()

    .expectStatus()

    .isOk();

如果事先準(zhǔn)備好 -在調(diào)試器中URI檢查生成的內(nèi)容或記錄它會更容易。URI


查看完整回答
反對 回復(fù) 2023-11-01
?
子衿沉夜

TA貢獻1828條經(jīng)驗 獲得超3個贊

以下是上述內(nèi)容的 Kotlin 示例


val requestParams = LinkedMultiValueMap<String, String>()

requestParams.add("A", "abc")      

requestParams.add("B", "def")       

requestParams.add("C", "ghi")

 

val uri = UriComponentsBuilder.fromPath("/v3/callback").queryParams(requestParams).build().toUri()   


webTestClient.get().uri{uri}.exchange().expectStatus().isOk


查看完整回答
反對 回復(fù) 2023-11-01
  • 3 回答
  • 0 關(guān)注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號