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.