Rest Api Call Node fixes: throws null data for next node in message, added default header Content-Type

This commit is contained in:
AndrewVolosytnykhThingsboard 2021-05-12 16:30:56 +03:00 committed by Andrew Shvayka
parent eae41d112f
commit fbb8cb5985
2 changed files with 5 additions and 2 deletions

View File

@ -207,7 +207,8 @@ public class TbHttpClient {
metaData.putValue(STATUS_CODE, response.getStatusCode().value() + ""); metaData.putValue(STATUS_CODE, response.getStatusCode().value() + "");
metaData.putValue(STATUS_REASON, response.getStatusCode().getReasonPhrase()); metaData.putValue(STATUS_REASON, response.getStatusCode().getReasonPhrase());
response.getHeaders().toSingleValueMap().forEach(metaData::putValue); response.getHeaders().toSingleValueMap().forEach(metaData::putValue);
return ctx.transformMsg(origMsg, origMsg.getType(), origMsg.getOriginator(), metaData, response.getBody()); String body = response.getBody() == null ? "{}" : response.getBody();
return ctx.transformMsg(origMsg, origMsg.getType(), origMsg.getOriginator(), metaData, body);
} }
private TbMsg processFailureResponse(TbContext ctx, TbMsg origMsg, ResponseEntity<String> response) { private TbMsg processFailureResponse(TbContext ctx, TbMsg origMsg, ResponseEntity<String> response) {

View File

@ -17,6 +17,8 @@ package org.thingsboard.rule.engine.rest;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data; import lombok.Data;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.thingsboard.rule.engine.api.NodeConfiguration; import org.thingsboard.rule.engine.api.NodeConfiguration;
import org.thingsboard.rule.engine.credentials.AnonymousCredentials; import org.thingsboard.rule.engine.credentials.AnonymousCredentials;
import org.thingsboard.rule.engine.credentials.ClientCredentials; import org.thingsboard.rule.engine.credentials.ClientCredentials;
@ -51,7 +53,7 @@ public class TbRestApiCallNodeConfiguration implements NodeConfiguration<TbRestA
TbRestApiCallNodeConfiguration configuration = new TbRestApiCallNodeConfiguration(); TbRestApiCallNodeConfiguration configuration = new TbRestApiCallNodeConfiguration();
configuration.setRestEndpointUrlPattern("http://localhost/api"); configuration.setRestEndpointUrlPattern("http://localhost/api");
configuration.setRequestMethod("POST"); configuration.setRequestMethod("POST");
configuration.setHeaders(Collections.emptyMap()); configuration.setHeaders(Collections.singletonMap(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE));
configuration.setUseSimpleClientHttpFactory(false); configuration.setUseSimpleClientHttpFactory(false);
configuration.setReadTimeoutMs(0); configuration.setReadTimeoutMs(0);
configuration.setMaxParallelRequestsCount(0); configuration.setMaxParallelRequestsCount(0);