当前位置: 首页 > 知识库问答 >
问题:

在webclient中发布请求以在JSON中添加请求正文

鲜于河
2023-03-14

我正在尝试在Spring Boot中使用WebClient制作API POST Request。但是我无法使用JSON正文发出我想要的请求并以JSONObject的形式接收响应。

JSON正文:

{
"workspaces": [
"6eret123",
"b129078v",
"ngy66553",
"erfc1153"
]
}

服务类别-

Workspaces workspace = new Workspaces(mw);
Flux<Workspaces> modifiedWorkspace = webClient.post().uri(URIDetails.MODIFIEDWORKSPACE)
.header("Authorization", bearerToken).body(Mono.just(mw), Workspaces.class).retrieve()
.bodyToFlux(Workspaces.class);
modifiedWorkspace.doOnNext(System.out::println).blockLast();
return null;

工作区模型-

public class Workspaces {
private List<String> workspaces;
}

主通话-

Flux<ScanIDModel> modifiedWorkspaces;
final List<String> mw = new ArrayList<>();
for (Workspace w : modifiedWorkspaces) {
mw.add(w.getId());
}
modifiedWorkspaces = scanRespone(mw);

我需要发送一个JSON主体列表,作为主体post请求。请帮我做帖子请求提前谢谢

共有1个答案

田文景
2023-03-14

尝试以下操作:

import org.springframework.web.reactive.function.client.WebClient;


public class Testclass{

@Autowired
private WebClient.Builder webClientBuilder;//webclient builder instance

public void testMethod(){

Class<Object> cls = Object.class;//object class of the request body
//Object obj is also the object of the request body
Object obj = webClientBuilder.build().post().uri("{{url}}")
                    .accept(MediaType.APPLICATION_JSON).header("Authorization", "{{authtoken}}")
                    .bodyValue(user).retrieve().bodyToMono(clazz).block();
}
}

希望上面的东西能有所帮助。

 类似资料:
  • 问题内容: 我需要进行API调用,以上传文件以及带有有关文件详细信息的JSON字符串。 我正在尝试使用python请求库来执行此操作: 这将引发以下错误: 如果我从请求中删除“文件”,则它可以工作。 如果我从请求中删除了“数据”,它将起作用。 如果我不将数据编码为JSON,则可以使用。 因此,我认为错误与在同一请求中发送JSON数据和文件有关。 关于如何使它工作的任何想法? 问题答案: 不要使用j

  • 问题内容: 因此,根据jQuery Ajax文档 ,它在发送请求时以查询字符串的形式序列化数据,但是设置应允许我在正文中发送实际的JSON。不幸的是,我很难首先确定是否发生这种情况,其次是将对象的外观发送给服务器。我所知道的是服务器未解析我正在发送的内容。 使用http客户端发布对象文字时,它可以工作。但是当将jQuery与结合使用时,它将失败。不幸的是,当我在Safari中分析请求时,它说消息的

  • 问题内容: 因此,我得到了以下内容,这些内容似乎难以置信,我一直在想自己Go的库设计得比此更好,但是我找不到Go处理JSON数据POST请求的示例。它们都是POST形式。 这是一个示例请求: 这是代码,其中嵌入了日志: 必须有更好的方法,对吗?我只是为寻找最佳实践而感到困惑。 (Go在搜索引擎中也被称为Golang,在这里提到它,以便其他人可以找到它。) 问题答案: 请使用代替。

  • 我有一个Java动态web项目(部署在本地应用服务器Tomcat 7上),它使用Jersey创建REST API。 我不使用任何构建自动化工具(所以我的库被添加到构建路径中,servlet被插入到web.xml文件中)。 我正在使用的库包括: 我的web.xml如下: 应用程序正在与MySQL数据库交互。场景如下:数据库包含一个名为user的用户帐户表。列是id、name、username和密码。

  • 我尝试使用(version4.0)调用api来提交一些数据。我想请求已经成功了。但我遇到的麻烦是,当进行调用时,我从服务器得到一个0字节失败的响应。 我已经尝试了StackOverflow上当前的许多解决方案,但找不到解决方案。谢谢你的帮助。 以下是我的设置:

  • 我正在使用截击库。我有以下API urlhttp://example.com/project/contriller/并且需要将json请求作为body发布到它。 如何使用截击发送?