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

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

如何在 micronaut 中使用生成的客戶端進行發(fā)布

如何在 micronaut 中使用生成的客戶端進行發(fā)布

慕工程0101907 2023-06-08 14:37:37
在 micronaut 中發(fā)布到一個簡單的 hello 控制器時出現(xiàn)錯誤。客戶端似乎以 application/json 的形式發(fā)布,但控制器需要 text/plain。如何修復(fù)客戶端以文本/純文本形式發(fā)布?HelloController.java@Post(value = "/helloBody/{name}", consumes = MediaType.TEXT_PLAIN)public Single<String> helloBody(@NotBlank String name, @NotBlank @Body String text) {    return Single.just(name + "sent: " + text);}HelloClient.java@Post(value = "/helloBody/{name}")Single<String> helloBody(@NotBlank String name, @NotBlank String body);HelloControllerTest.java@Testvoid testPost() {    String body = client.helloBody("John", "message").blockingGet();    assertThat(body).isEqualTo("John sent: message");}錯誤io.micronaut.http.client.exceptions.HttpClientResponseException: Content Type [application/json] not allowed. Allowed types: [text/plain]    at io.micronaut.http.client.DefaultHttpClient$10.channelRead0(DefaultHttpClient.java:1799)    at io.micronaut.http.client.DefaultHttpClient$10.channelRead0(DefaultHttpClient.java:1739)    at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)...
查看完整描述

1 回答

?
30秒到達戰(zhàn)場

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

text/plain您可以通過告訴客戶端按后端預(yù)期發(fā)送來更改此設(shè)置。


@Post(value = "/helloBody/{name}", consumes = MediaType.TEXT_PLAIN, produces = MediaType.TEXT_PLAIN)

Single<String> helloBody(@NotBlank String name, @NotBlank String body);

Micronaut 的想法是讓W(xué)eb 操作在控制器和客戶端之間共享。


讓我們考慮一個名為HelloOperations. 這是可以在客戶端和服務(wù)器之間共享的 Web 界面。


@Validated

public interface HelloOperations {


? @Post(value = "/helloBody/{name}", consumes = MediaType.TEXT_PLAIN)

? Single<String> helloBody(@NotBlank String name, @NotBlank @Body String text);

}

現(xiàn)在您開始在后端使用控制器實現(xiàn)來實現(xiàn)合約,例如


@Controller

public class HelloController implements HelloOperations {


? ?@Override

? ?public Single<String> helloBody(String name, String text)? {


? ? ?// do something in here...

? ?}

}

之后你繼續(xù)在客戶端。


@Client

public interface HelloWorldClient extends HelloOperations {


? ?@Override

? ?Single<String> helloBody(String name, String text);

}

Et voilà。您已成功連接它們。


查看完整回答
反對 回復(fù) 2023-06-08
  • 1 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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