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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

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

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

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

3 回答

?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊

您可以利用UriBuilder.


webTestClient.get()

            .uri(uriBuilder ->

                    uriBuilder

                            .path("/v3/callback")

                            .queryParam("state", "cGF5bWVudGlkPTRiMmZlMG")

                            .build())

            .exchange()

            .expectStatus()

            .isOk();

這應(yīng)該有效。



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

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

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


webTestClient.get()

    .uri(uriBuilder -> uriBuilder

        .path("/v3/callback")

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

        .build())

    .exchange()

    .expectStatus()

    .isOk();

然后UriBuilder將嘗試對(duì)大括號(hào)的內(nèi)容進(jìn)行變量替換,您可能會(huì)在調(diào)用時(shí)遇到異常build()。為了避免這種情況,請(qǐng)將請(qǐng)求參數(shù)放在單獨(dú)的requestParams映射中,并通過(guò)build(requestParams)在構(gòu)建時(shí)調(diào)用來(lái)使用受控變量替換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();

另一個(gè)提示。如果您發(fā)現(xiàn).uri(uriBuilder -> ...)語(yǔ)法有點(diǎn)復(fù)雜,您可以URI在請(qǐng)求之前顯式準(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)容或記錄它會(huì)更容易。URI


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

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊

以下是上述內(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


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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