用于发布带有自定义头和请求对象的请求的Spring RestTemplate [英] Spring RestTemplate to POST request with Custom Headers and a Request Object

查看:0
本文介绍了用于发布带有自定义头和请求对象的请求的Spring RestTemplate的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Spring RestTemplate中,有一种方法可以将自定义头与POST请求对象一起发送。我已经尝试了可用的exchange方法。我们似乎可以将键值对与自定义头一起发送,但不能发送附加到HttpEntity.的请求对象本身。下面的代码演示了这种尝试,对于服务器似乎是400 BadRequest

    HttpHeaders requestHeaders = new HttpHeaders();
    requestHeaders.setContentType(MediaType.APPLICATION_JSON);

    HttpEntity<?> httpEntity = new HttpEntity<Object>(requestDTO, requestHeaders);

    RestTemplate restTemplate = new RestTemplate();
    restTemplate.exchange(URL, HttpMethod.POST, httpEntity, SomeObject.class);

有人知道这种情况吗?或者这是我不可能尝试去做的事情?

推荐答案

可以,如果使用多值映射头而不是HttpHeaders

示例:

MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Authorization", "Basic " + base64Creds);
headers.add("Content-Type", "application/json");

RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());

HttpEntity<ObjectToPass> request = new HttpEntity<ObjectToPass>(objectToPassInstance, headers);

restTemplate.postForObject(urlPost, request, Boolean.class);

Boolan.class只是因为我的控制器在此终结点返回Boolean(可以是任何值)

祝编码好运!

这篇关于用于发布带有自定义头和请求对象的请求的Spring RestTemplate的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆