我设置标题的方式如下:
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中动态设置的。
答案 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或将标头更改为适合表单数据的内容。