【发布时间】:2020-09-16 06:13:20
【问题描述】:
我正在尝试发送带有正文数据的 POST 请求,如下所述:https://scrapyrt.readthedocs.io/en/stable/api.html#post。
这是我尝试做的,但它给了我 HTTP 代码 500
String uri = "http://localhost:3000";
WebClient webClient = WebClient.builder()
.baseUrl(uri)
.build();
LinkedMultiValueMap map = new LinkedMultiValueMap();
String q = "\"url\": \"https://blog.trendmicro.com/trendlabs-security-intelligence\",\"meta\":{\"latestDate\" : \"18-05-2020\"}}";
map.add("request", q);
map.add("spider_name", "blog");
BodyInserter<MultiValueMap<String, Object>, ClientHttpRequest> inserter2
= BodyInserters.fromMultipartData(map);
Mono<ItemsList> result = webClient.post()
.uri(uriBuilder -> uriBuilder
.path("/crawl.json")
.build())
.body(inserter2)
.retrieve()
.bodyToMono(ItemsList.class);
ItemsList tempItems = result.block();
【问题讨论】:
-
您为什么要尝试编写自己的 JSON 的一半?
q应该是什么?它将针对request序列化为单个字符串值 -
这是我想用 POST 发送的正文 { "request": { "url": "blog.trendmicro.com/trendlabs-security-intelligence", "meta": { "latestDate" : "14-02-2020" } }, "spider_name": "blog"} q 是结果参数的值
标签: spring rest spring-webflux