Java SpringWeb客户端发布长类型的表单数据

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

我需要通过表单数据将数据发布到RESTAPI。 这些值是长值。我已经写了下面的代码,它给出了错误

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可能在将数据转换为字符串类型方面存在问题(我相信他在幕后所做的事情是正确的)

对您有好处的是,您可以通过手动将数据转换为字符串来控制将发布的内容。因此,您不必依赖内部序列化程序/强制转换等