我有一个代理,它位于使用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}"
无论内容类型设置为什么,都会发生这种情况。
无论如何我可以使用假装发布一个字符串而不用它进行测试吗?
答案 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()),并假装停止字符串转义。