如何阻止假装从 qouting 和转义字符串数据

How to stop feign from qouting and escaping string data

我有一个代理,它位于使用 json 对象进行通信的客户端和服务器之间。代理需要将数据作为字符串处理。它不知道扫描数据中的字符串所需的类型。问题是当我将数据从代理转发到服务器时,字符串被引用并且字符串中的引号被转义。我需要按原样发送字符串。

@Headers({"Accept: application/json"})
interface ExampleClient {

   @Headers({"Content-Type: application/json"})
   @RequestLine("POST /examples/postTest")
   Response postTest(String body);
}

字符串是

{"name":"Alfred","nickname":"Alfy","number":45}

但在 post 的正文中是

"{\"name\":\"Alfred\",\"nickname\":\"Alfy\",\"number\":45}"

无论内容类型设置成什么,都会发生这种情况。

我是否可以 post 使用 feign 的字符串而不被引用?

在我的代码中

GsonDecoder decoder = new GsonDecoder();
                client = Feign.builder()                
                **.encoder(new GsonEncoder())**
                .logLevel(feign.Logger.Level.FULL)
                .logger(new Slf4jLogger(CampaignsClient.class))
                .requestInterceptor(template -> template.header(AUTHORIZATION_HEADER, "Bearer ..."))
                .target(CampaignsClient.class, "https://server");

我删除了代码行 .encode(new JsonEncoder()) 并假装停止字符串转义。