【发布时间】:2020-08-04 00:47:39
【问题描述】:
我有一个控制器接收 HttpServletRequest 和身体 form-data 一些 key-value
我想将此 HttpServletRequest 传递给另一个 API。另一个 API 控制器接收到HttpServletRequest
到目前为止,我已经在我的服务类中尝试过这个。
public void saveApi(HttpServletRequest request) throws Exception {
System.out.println(request.getCode());
RestTemplate restTemplate = new RestTemplate();
HttpServletRequest result = restTemplate.postForObject( "http:localhost:8080/save", request, HttpServletRequest .class);
}
结果是其他APIjava.lang.NullPointerException: null,其他API没有收到我的帖子。
如何做到这一点?可能吗?
另一个服务,例如:GET方法,我用RestTemplate调用另一个API,带有一些参数,它成功了。
更新
答案是:
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
form.add("name", request.getParameter("name"));
form.add("blabla", request.getParameter("blabla"));
form.add("blabla", request.getParameter("blabla"));
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(form, httpHeaders);
restTemplate.postForEntity("http:localhost:8080/save", requestEntity, String.class);
【问题讨论】:
-
我怀疑您是否可以通过这种方式传递请求。你能发布堆栈跟踪吗?
-
在这里查看 cmets stackoverflow.com/questions/34133561/…
-
@SimonMartinelli 嗨,先生,我正在构建一个 api,用于从前端到后端另一个 api 的桥接。 api没有收到我的servlet请求,它说空指针。但是当我直接使用邮递员请求该 api 时它成功了。
标签: java spring spring-boot servlets spring-rest