为什么必须在标头中发送内容类型数据,以便结果正确?

时间:2019-07-27 15:25:38

标签: java webclient spring-webflux

尝试与webclient进行请求时遇到问题。

服务器仅支持 内容类型:application / json;字符集= UTF-8

这是我的webclient配置,但是我总是收到错误: 415不支持的媒体类型

 LinkedMultiValueMap mapBody = new LinkedMultiValueMap();

 List<String> ingredientsList = new ArrayList<String>();
 ingredientsList.add("200g Lentejas 20g chorizo");

 mapBody.add("title", "lentejas con chorizo");
 mapBody.add("ingr", ingredientsList);

BodyInserters.MultipartInserter inserterBody = BodyInserters.fromMultipartData(mapBody);

WebClient webClient = WebClient.create(this.api_nutrition_uri);

        Mono<NutritionResModel> response = webClient
                .post()
                .uri(uriBuilder -> uriBuilder
                        .path("/api/nutrition-details")
                        .queryParam("app_id", api_nutrition_appId)
                        .queryParam("app_key", api_nutrition_appKey)
                        .build())
                //.headers(httpHeaders -> httpHeaders.add("Content-Type", "application/json;charset=UTF-8"))
                //.accept(MediaType.APPLICATION_JSON_UTF8)
                .contentType(MediaType.APPLICATION_JSON_UTF8)
                .body(inserterBody)
                //.header("Content-Type", "application/json")

                .retrieve()
                //.doOnSuccess(clientResponse -> System.out.println("clientResponse.statusCode() = " + clientResponse.headers()))
                //.doOnSuccess(clientResponse -> System.out.println("clientResponse.statusCode() = " + clientResponse.statusCode()))
                //.flatMap(clientResponse -> clientResponse.bodyToMono(NutritionResModel.class));
                .bodyToMono(NutritionResModel.class);

我不知道如何在标题中发送内容类型数据以确保结果正确

谢谢!

0 个答案:

没有答案