【发布时间】:2017-07-08 17:23:08
【问题描述】:
我一直在尝试使用 rest 将对象从一个应用程序发送到另一个应用程序。
发件人:
@Controller
public class Sender {
@RequestMapping(value = "/comMessageApp-api/getMessages")
public String restGetMessages() {
String url = "http://localhost:8079/comMessageApp-api/responseMessages";
HttpEntity<Dto2> entity = new HttpEntity<>(new Dto2());
ResponseEntity<Dto2> response = restTemplate.exchange(url, HttpMethod.POST, entity, Dto2.class);
}
}
接收者:
@RestController
public class Receiver {
@RequestMapping(value = "/comMessageApp-api/responseMessages")
public void restResponseMessages(HttpEntity<Dto2> request) {
System.out.println(request.getBody());
}
}
DTO:
public class Dto2 {
private String string = "Test string";
public Dto2() {
}
public String getString() {
return string;
}
public void setString(String string) {
this.string = string;
}
}
Jackson 用于序列化/反序列化。
任何想法,为什么在接收器中打印的 request.getBody() 为空??? 我试图在 HttpEntity 和 RequestEntity 中发送对象。两种情况都没有成功。在接收方,我总是得到 null。
【问题讨论】:
-
如果您尝试将 DTO 发送到接收方,那么您应该使用 POST 方法而不是 GET。 GET 用于从另一端检索数据。如果要从 Receiver 检索 DTO,则需要在 Receiver 中创建 DTO 并将其返回。
-
我已将其更改为发布。但现在我在发件人端收到“org.springframework.web.client.HttpClientErrorException: 403 null”异常。请求永远不会到达接收者
-
请提供minimal reproducible example。在这种情况下,您可能需要向最少的完整程序展示:一个用于服务器,一个用于客户端。
标签: java rest spring-mvc