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

时间:2018-04-09 22:58:26

标签: java json netflix-feign feign

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

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

无论如何我可以使用假装发布一个字符串而不用它进行测试吗?

1 个答案:

答案 0 :(得分:1)

在我的代码中

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()),并假装停止字符串转义。