RestTemplate execute()方法无法发送JSON有效载荷

时间:2019-12-18 09:56:02

标签: spring resttemplate

在我的应用程序中,我需要从另一个请求中获取数据并链接到一个新请求中

我必须使用0 2:0.0956973405770521 3:0.04302176671363839 63:0.22238596493564314 70:0.10967685914251926 139:0.23401113066755871 252:0.2197483438988253 555:0.4133093410994923 566:0.38936213517756474 1078:0.4758559946101788 1732:0.5005412038471097 3640:0.5518088141146315 5017:0.7249851063151311 7793:0.5518088141146315 0 2:0.08886181625011981 3:0.039948783376949924 5:0.08410395321456549 82:0.18319049693258793 90:0.1919885302924892 256:0.21925479670962622 303:0.4053787361547381 325:0.22255697201807345 353:0.27518945356563856 530:0.31997134952306455 562:0.43392159248729284 785:0.49570712373633596 9066:0.6077511178730391 15357:0.7227109687611892 0 1:0.10076144986545423 2:0.0691147459723154 3:0.06214255191969988 7:0.18335119128172658 20:0.08097367795302803 35:0.25318177398006236 37:0.04713864367763213 70:0.0792110649362639 111:0.17495017690637232 137:0.2826397578480119 153:0.17929691347274906 160:0.34589629247477904 256:0.1705315085519315 1091:0.26748048081097636 1281:0.28156097530039514 4054:0.36002041127390355 的{​​{1}}方法,因为我在杰克逊库中遇到了问题,无法添加/更改库。

这是我的代码:

exchange()

但是最后,终结点无法接收我的JSON(接收数据,而不是JSON。)

我在哪里错了?

谢谢

1 个答案:

答案 0 :(得分:-1)

非常不准确的代码。使所有步骤一对一,它会起作用,您稍后再进行优化...

  1. 基本身份验证。不要做不必要的动作 var headers = new HttpHeaders(); headers.setBasicAuth(用户名,密码); 就是这样,Spring会处理其他所有事情-应用Base64,添加Basic:并正确设置标头。

  2. 设置所有必需的标头,包括headers.setContentType(MediaType.APPLICATION_JSON)

  3. 获取需要随请求发送(设置为正文)的实体/对象。

  4. 序列化您的对象。最流行,正确和简单的方法是使用fastxml json框架,您可以使用mapper.writeBalueAsString(<your object>)进行序列化。如果您确实不能使用外部库,则HttpEntity应该使其:var request = new HttpEntity<>(<object>, headers);

  5. 发出restTemplate请求。在几乎所有情况下,更方便的方法是restTemplate.postForObject()restTemplate.getForObject()restTemplate.postForEntity()等:restTemplate.postForObject(uri, request, ResponseObject.class)