我試圖進行 http 入站,但是當我列印我的訊息時,有效負載是空的,我在這里缺少什么?
@Slf4j
@Component
public class HttpInboundGateway {
@Bean
public IntegrationFlow inGate1() {
log.info("Initializing inbound gateway...");
return IntegrationFlows.from(Http.inboundChannelAdapter("/")
.requestPayloadType(PayloadObj.class))
.channel("transfer_next_channel")
.get();
}
@Bean
@ServiceActivator(inputChannel = "transfer_next_channel")
public MessageHandler handler() {
return new MessageHandler() {
@Override
public void handleMessage(Message<?> message) throws MessagingException {
System.out.println("myHandlerPayload: " message.getPayload());
System.out.println("myHandlerHeader: " message.getHeaders());
}
};
}
}
預期的 PayloadObj 類:
@Data
@NoArgsConstructor
public class PayloadObj {
String name;
String job;
}
編輯1:根據要求
郵遞員的卷發
curl --location --request GET 'http://localhost:9090/' \
--header 'Content-Type: application/json' \
--data-raw '{
"name":"Marcos",
"job":"Dev Jr"
}'
從處理程式列印:
myHandlerPayload: {} --- Payload
myHandlerHeader: {content-length=46, http_requestMethod=GET,
host=localhost:9090, http_requestUrl=http://localhost:9090/,
connection=keep-alive, id=e67aef3d-938a-7ac3-eb7d-ddaf9cd74f4e,
contentType=application/json;charset=UTF-8, accept-encoding=gzip,
deflate, br, user-agent=PostmanRuntime/7.28.4, accept=*/*,
timestamp=1642168826837}
uj5u.com熱心網友回復:
curl --location --request GET 'http://localhost:9090/'
你確實GET要求。這樣請求的主體就被忽略了。并且只有請求引數作為有效負載傳輸。由于您也沒有這些,這意味著有效負載是空的Map。
考慮使用POSTorPUT代替。并了解有關 HTTP 協議及其方法細節的更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/412176.html
標籤:
上一篇:將非彈簧物件注入彈簧專案
