spring-cloud version: Greenwich.SR3 spring-boot-version: 2.1.9.RELEASE

I wrote the following feign interface:

@FeignClient(name = "test")
@RequestMapping("/test")
public interface RemoteService  {


    @RequestMapping(path="str", method = RequestMethod.POST)
    String str(@RequestParam("str") String str);

    @RequestMapping(path="list", method = RequestMethod.POST)
    List<String> list(@RequestParam("list") List<String> list);

}

@RestController
public class RemoteServiceImpl implements RemoteService   {
    public String str(String str){
        return str;
    }

    public List<String> list(List<String> list){
        return list;
    }
}

and then invoke it via feign like this:

Case 1 :

        String ret = remoteService.str("hello;world");
        //the expected output should be:`hello;world` , but actually I got:`hello,world`, 
        System.out.println(ret);

the expected output should be:hello;world , but actually I got:hello,world,

Case 2:

        List<String> list = new ArrayList<>();
        list.add("hello;world");
        String retList = remoteService.list(list);
        //the expected output should be:`["hello;world"]` , but actually I got:`["hello", "world"]`, 
        System.out.println(retList);

the expected output should be:["hello;world"] , but actually I got:["hello", "world"],

Comment From: spencergibb

My guess this has to do with spring codecs not feign specifically. Do you see correct behavior using rest template for example?

Comment From: aftersss

RestTemplate works correctly.

Comment From: kdavisk6

This is an Open Feign issue. Can you please either move this to that project or open a new issue there? I’ll take a look.