- Notifications
You must be signed in to change notification settings - Fork 1.9k
Closed as not planned
Closed as not planned
Copy link
Description
Hello, the problem in short is that when using a custom Feign.Builder, I cannot use FeignClient to post a url-encoded form, it will post an empty string.
In particular, I have a FeignClient:
public interface FeignClientTest { @PostMapping(value = "/test", consumes = { MediaType.APPLICATION_FORM_URLENCODED_VALUE }) String callTest(TestBody body); record TestBody( @FormProperty("test1") String test1, @FormProperty("test2") String test2 ){ } }And I create the instance by custom Feign.Builder:
@Import({FeignClientsConfiguration.class}) @Configuration @RequiredArgsConstructor public class FeignClientConfig { private final Encoder encoder; private final Decoder decoder; private final Contract contract; private Feign.Builder feignBuilder() { return Feign.builder() .encoder(new SpringFormEncoder()) .decoder(decoder) .contract(contract) .logLevel(Logger.Level.FULL); } @Bean public FeignClientTest feignClientTest() { return feignBuilder() .logger(new Slf4jLogger(FeignClientTest.class)) .target(FeignClientTest.class, "http://127.0.0.1:8080/"); } }When I call it like this:
@Autowired private FeignClientTest client; @GetMapping("/something") public String keep() { return client.callTest(new FeignClientTest.TestBody("test1", "test2")); }I got these logs:
2023-08-11T18:55:52.421+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] ---> POST http://127.0.0.1:8080/test HTTP/1.1 2023-08-11T18:55:52.421+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] Content-Type: application/x-www-form-urlencoded; charset=UTF-8 2023-08-11T18:55:52.421+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] 2023-08-11T18:55:52.422+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] 2023-08-11T18:55:52.422+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] ---> END HTTP (0-byte body) 2023-08-11T18:55:52.452+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] <--- HTTP/1.1 200 (30ms) 2023-08-11T18:55:52.453+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] connection: keep-alive 2023-08-11T18:55:52.453+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] content-length: 12 2023-08-11T18:55:52.453+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] content-type: text/plain;charset=UTF-8 2023-08-11T18:55:52.453+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] date: Fri, 11 Aug 2023 10:55:52 GMT 2023-08-11T18:55:52.453+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] keep-alive: timeout=60 2023-08-11T18:55:52.453+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] 2023-08-11T18:55:52.454+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] Hello World! 2023-08-11T18:55:52.454+08:00 DEBUG 53840 --- [nio-8080-exec-1] c.e.openfeignclienttest.FeignClientTest : [FeignClientTest#callTest] <--- END HTTP (12-byte body) It seems that Feign post a empty body, is there anything I did wrong? Thank you in advance!
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels