在spring boot web客户端中发送请求正文时,我遇到了一些问题。试图发送身体如下:
val body = "{\n" +
"\"email\":\"test@mail.com\",\n" +
"\"id\":1\n" +
"}"
val response = webClient.post()
.uri( "test_uri" )
.accept(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromObject(body))
.exchange()
.block()
它不起作用。请求正文应为JSON格式。请告诉我哪里做错了。
您可以尝试如下:
public String wcPost(){
Map<String, String> bodyMap = new HashMap();
bodyMap.put("key1","value1");
WebClient client = WebClient.builder()
.baseUrl("domainURL")
.build();
String responseSpec = client.post()
.uri("URI")
.headers(h -> h.setBearerAuth("token if any"))
.body(BodyInserters.fromValue(bodyMap))
.exchange()
.flatMap(clientResponse -> {
if (clientResponse.statusCode().is5xxServerError()) {
clientResponse.body((clientHttpResponse, context) -> {
return clientHttpResponse.getBody();
});
return clientResponse.bodyToMono(String.class);
}
else
return clientResponse.bodyToMono(String.class);
})
.block();
return responseSpec;
}
以上答案是正确的:在内容类型
标题中添加应用程序/json
,可以解决问题。不过,在这个回答中,我想提到身体插入器。fromObject(body)
已被弃用。从Spring Framework 5.2开始,建议使用车身插入器。fromValue(body)
。
您没有设置“内容类型”
请求头,因此需要附加。contentType(MediaType.APPLICATION_JSON)
到请求构建部分。
我有这个代码: 我一直在犯这样的错误: java:不兼容的类型:com。应用句子分类请求。无法将生成器转换为com。应用句子分类请求 我已经使用Maven插件生成了gRPC Java文件。在看了多个例子后,我不确定我的问题是什么。
我希望在调试这个问题时得到一些帮助。如果我将以下JSON发送到后端,它将正常工作: 但是,如果我现在发送以下内容: 我得到了上面的错误。在我的后端代码中,我有以下代码: API 方法签名如下所示: 我认为我遇到的问题是JSON不能被解析为ZonedDateTime。有人对以下两个问题有什么建议吗?( json字符串格式ZonedDateTime自动接受什么时间,( 2)如何创建DTO来解析zone
我在firefox web Browser中使用Rest Client add on。我想测试一个处理HTTP POST请求并使用JSON的web服务。我如何使用Rest Client测试它? 如果在请求正文中添加json,将得到一个*HTTP 415不受支持的媒体类型错误*。 这样做的正确方法是什么?
我想在Spring WebClient请求链接中发送链接请求参数。例如: https://www.test.com/notification?con=41280440000097 我尝试了以下代码: 但是当我试图设置映射时,我在标记
客户端通过HTTP请求(通过浏览器post)调用Servlet,然后Servlet应向外部网站发送请求(get),并从网站接收响应(post)。servlet继续响应并向客户端发送响应(post)。 我的问题是如何在Servlet中发送和接收请求/响应并将某些内容发送回客户端?
问题内容: 我在同一个主题上看过几个qts。但是我没有发现此错误的任何线索。 我正在研究POC,并点击下面的链接。 http://spring.io/guides/gs/uploading- files/ 如以上教程中所述,在独立模式下(春季嵌入式Tomcat),它可以正常工作。但是我想将其部署为Web应用程序。因此,我创建了一个单独的SpringMVC项目并添加了以下控制器。 控制器文件 我已经