Spring Webflux Webclient |内容类型标题设置问题

时间:2019-04-01 09:11:37

标签: java spring-boot spring-webflux spring-webclient

我设置标题的方式如下:

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

WebClient webClient = WebClient.create();
webClient.post().uri(url)
        .headers(httpHeaders -> httpHeaders.setAll(headersMap))
        .body(BodyInserters.fromFormData(HelperMethods.mapToMultiValueMap(body))).exchange();

它适用于某些服务,但是在我要添加自定义标头的地方,我遇到了问题。

对于设置内容类型,我在headersMap(headersMap是Map)的标题中添加了以下内容:(“ Content-Type”,“ application / json”)

但是它给了我错误:“ HTTP标头行[“ Content-Type”:“ application / json”]不符合RFC 7230,已被忽略”

这可能是什么原因造成的?我尝试发送的内容类型为:(“内容类型”,“应用程序/ json”),但错误相同。

我无法使用“ .contentType()”在请求中设置标头,因为标头的数量是可变的,而该变量是在headersMap中动态设置的。

1 个答案:

答案 0 :(得分:2)

您正在发送内容类型指向json的表单数据(通常为import * as actions from "./actions"; const initialState = { currentUserError: "", currentUserLoading: false, currentUser: [] }; const currentUserReducer = (state = initialState, action) => { switch (action.type) { case actions.FETCH_CURRENT_USER_STARTED: { return { ...state, loading: (state.currentUserLoading = true) }; } case actions.FETCH_CURRENT_USER_SUCCESS: { console.log("current user from reducer", action); return { ...state, currentUserLoading: false, currentUser: action.payload }; } case actions.FETCH_CURRENT_USER_FAILURE: { return { ...state, currentUserLoading: false, currentUserError: action.payload.error.message }; } default: { return state; } } }; export default currentUserReducer; )-发送适当的JSON或将标头更改为适合表单数据的内容。