4

我有一个代理,它位于使用 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}

但在帖子的正文中

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

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

无论如何我可以使用 feign 发布一个字符串而不会被 qouted 吗?

4

1 回答 1

2

在我的代码中

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");

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

于 2020-05-06T11:30:51.983 回答