Feign 客户端请求参数重复

问题描述 投票:0回答:2

我正在使用 feign 客户端调用 REST 端点(POST 方法),但收到错误的请求错误。以下是要求。

@PostMapping(value = "/api/2.0/fo/report/?action=launch&template_id={template_id}&output_format=csv&hide_header=1&report_title={report_title}&use_tags=1&tag_set_by=name&tag_set_include={included_tags}")
String launchReport(@RequestHeader(X_REQUESTED_WITH) String curlSample, @RequestHeader("Cookie") String cookie, @RequestParam("template_id") String templateId, @RequestParam("report_title") String reportTitle, @RequestParam("included_tags") String includedTags);

这里的 cookie 是来自先前请求的会话标头。我需要设置它进行身份验证..所以有两个RequestHeaders..下面是错误,

feign.FeignException$BadRequest: [400 Bad Request] during [POST] to [https://xxx.xxx.xxx/api/2.0/fo/report/?action=launch&template_id=xxx&template_id=xxx&template_id=xxx&output_format=csv&hide_header=1&report_title=xxx&report_title=xxx&report_title=xxx&use_tags=1&tag_set_by=name&tag_set_include=xxx] [xxxClient#launchxxx(String,String,String,String,String)]: [<?xml version="1.0" encoding="UTF-8" ?>

我看到请求中的参数是重复的。如何克服这个问题?

java spring rest post feign
2个回答
0
投票

我今天刚刚遇到了同样的问题,并通过删除映射注释处 URL 中的占位符来修复它

在这种情况下应该有效:

@PostMapping(value = "/api/2.0/fo/report/?action=launch&output_format=csv&hide_header=1&use_tags=1&tag_set_by=name")


-1
投票

使用@PathVariable代替@RequestParam解决了问题

© www.soinside.com 2019 - 2024. All rights reserved.