Java SpringWeb客户端发布长类型的表单数据
我需要通过表单数据将数据发布到RESTAPI。 这些值是长值。我已经写了下面的代码,它给出了错误Java SpringWeb客户端发布长类型的表单数据,java,spring,spring-boot,rest,webclient,Java,Spring,Spring Boot,Rest,Webclient,我需要通过表单数据将数据发布到RESTAPI。 这些值是长值。我已经写了下面的代码,它给出了错误 MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>(); formData.add("commentId", Long.valueOf(98578976)); formData.add("reactionID", Long.valueOf(6098
MultiValueMap<String, Object> formData = new LinkedMultiValueMap<>();
formData.add("commentId", Long.valueOf(98578976));
formData.add("reactionID", Long.valueOf(609878777));
webClient
.post()
.uri(url)
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.header("authorization", accessToken)
.syncBody(formData)
.retrieve()
.bodyToMono(SocialFeed.class)
.block();
MultiValueMap formData=新链接的MultiValueMap();
formData.add(“commentId”,Long.valueOf(98578976));
formData.add(“reactionID”,Long.valueOf(609878777));
网络客户
.post()
.uri(url)
.contentType(MediaType.APPLICATION\u FORM\u URLENCODED)
.header(“授权”,accessToken)
.syncBody(formData)
.retrieve()
.bodyToMono(社会福利类)
.block();
错误:java.lang.ClassCastException:无法将类java.lang.Long转换为类java.lang.String(java.lang.Long和java.lang.String位于加载程序“引导”的模块java.base中)
一般除字符串、字符串的多值映射外。如何发布其他类型的数据?
键为String,值为long?对于多值映射,您需要将所有数据放在字符串格式中
MultiValueMap formData=新链接的MultiValueMap();
formData.add(“commentId”,String.valueOf(98578976L));
add(“reactionID”,String.valueOf(609878777L));
您使用的webclient可能在将数据转换为字符串类型方面存在问题(我相信他在幕后所做的事情是正确的)
对您有好处的是,您可以通过手动将数据转换为字符串来控制将发布的内容。因此,您不必依赖内部序列化程序/强制转换等