如何阻止假装从 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()) 并假装停止字符串转义。
我有一个代理,它位于使用 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()) 并假装停止字符串转义。