繁体   English   中英

如何使用Java访问柑橘http接收消息正文?

[英]How do I access a citrus http receive message body in Java?

我同时使用黄瓜和柑橘,在我的@Then定义中,我具有柑橘HTTP响应:

@CitrusResource TestRunner runner;

runner.http(builder -> {
    final HttpClientResponseActionBuilder rab = 
        builder.client("citrusEndpointAPI").receive()
        .response(HttpStatus.OK).messageType(MessageType.JSON)
        .contentType(MediaType.APPLICATION_JSON_VALUE);

有没有一种方法可以将返回的JSON消息正文存储到Java JSON对象中?

您可以使用本地消息存储。 在测试过程中,每条消息应保存到本地内存中。 您可以稍后在该测试用例中通过其名称访问存储的消息:

receive(action -> action.endpoint("sampleEndpoint")
    .name("sampleMessage")
    .payload("..."));

echo("citrus:message(sampleMessage.payload())");

请注意,我们将收到的消息命名为sampleMessage 您也可以在自定义测试操作中通过测试上下文访问消息存储。

context.getMessageStore().getMessage("sampleMessage");

除此之外,您还可以在Java DSL中使用自定义消息验证回调。 在这里,您可以完全访问收到的消息内容。

receive(action -> action.endpoint("sampleEndpoint")
    .validationCallback((message, context) -> {
        //Do something with message content
        message.getPayload(String.class);
    }));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM