我们的身体结构与此非常相似:-
{'a':'value A1','b':{'b1':'value B1','b2':'value B2'}}
现在,我们有一个b的DTO,它有b1和b2。
'''
public class B {
private String b1;
private String b2;
}
"'同样,我们对整个结构有一个DTO,它具有值String a和bDTO。
'''
public class Z {
private String a;
private B b;
}
''我们制造他们的物品--
b b=new B("value eB1","value eB2"); Z z=new Z("value eA1", b);
现在,我想使用这些DTO进行webClient调用。我尝试的方式是:-
'''
client1.post()
.uri("")
.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)
.body(Mono.just(z), Z.class)
.retrieve().onStatus(HttpStatus::isError, response -> response.bodyToMono(String.class).map(Exception::new))
.bodyToMono(Map.class).block();
'''
当我发送此请求时。服务器接收到的请求是:-{'a':'valueA','b':null}
请告诉我解决这个问题的方法
默认情况下,WebClient使用Jackson进行JSON序列化。您需要使用@JsonProperty
注释来装饰属性
public class B {
@JsonProperty("b1")
private String b1;
@JsonProperty("b2")
private String b2;
public B(String b1, String b2) {
this.b1 = b1;
this.b2 = b2;
}
}
public class Z {
@JsonProperty("a")
private String a;
@JsonProperty("b")
private B b;
public Z(String a, B b) {
this.a = a;
this.b = b;
}
}
这里有一个简单的测试
B b = new B("valueB1", "valueB2");
Z z = new Z("valueA1", b);
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(z);
assertEquals("{\"a\":\"valueA1\",\"b\":{\"b1\":\"valueB1\",\"b2\":\"valueB2\"}}", json);
我在firefox web Browser中使用Rest Client add on。我想测试一个处理HTTP POST请求并使用JSON的web服务。我如何使用Rest Client测试它? 如果在请求正文中添加json,将得到一个*HTTP 415不受支持的媒体类型错误*。 这样做的正确方法是什么?
我正在制作一个小应用程序,我可以使用spring-boot保存用户详细信息。我创建了实体及其相应的存储库。当我发出帖子请求以添加用户的用户对象的id时,该id在保存到数据时为空base.Thisid在MySQL中自动生成(自动增量)。从POST请求中,我得到3个字段,即用户名、电子邮件、密码。用户类包含字段id、用户名、电子邮件、密码。我添加了注释 作为 id 字段。构造函数是 我的用户服务类 我
我有这个代码: 我一直在犯这样的错误: java:不兼容的类型:com。应用句子分类请求。无法将生成器转换为com。应用句子分类请求 我已经使用Maven插件生成了gRPC Java文件。在看了多个例子后,我不确定我的问题是什么。
最大消息长度为64K字节(尽管我可以将其减少到256字节)。 注意:这将运行在一个微小的嵌入式设备上,所以使用像ZMQ这样的消息传递层不是一个选项(没有足够的内存)。 我可以:
问题内容: 单个Servlet如何处理以用户请求形式出现的多个客户端请求?基于单例设计模式,我知道我们创建了一个servlet实例,但是单个servlet如何处理数百万个请求。对其所涉及的线程也感到困惑。 同样,这里提供了任何浏览器规范或设置,可用于跨请求发送请求或生成针对请求发送的线程。 所有框架都相同还是不同(例如,struts v / s springs)? 问题答案: Struts / S
问题内容: 首先,让我解释一下上下文: 我必须创建一个客户端,该客户端将发送许多HTTP请求以下载图像。这些请求必须是异步的,因为一旦完成图像,它将被添加到队列中,然后打印到屏幕上。由于图像可能很大且响应分块,因此我的处理程序必须将其聚合到缓冲区中。 因此,我遵循Netty示例代码(HTTP勺示例)。 目前,我有三个静态映射,用于为每个通道存储通道ID和缓冲区/块布尔值/我的最终对象。 在那之后,