spring Web 客户端 post Long 类型的表单数据
spring web client post form data of Long type
我需要通过表单数据post数据到休息api。
这些值是长值。我写了下面的代码,它给出了错误。
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();
错误:java.lang.ClassCastException:class java.lang.Long 无法转换为 class java.lang.String(java.lang.Long 和 java.lang.String在加载程序 'bootstrap') 的模块 java.base 中。
通常它是 string, string 的例外多值映射。如何post其他类型的数据?
键是字符串,值是长?
对于 MultiValueMap.
,您需要将所有数据放入 String 格式
MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
formData.add("commentId", String.valueOf(98578976L));
formData.add("reactionID", String.valueOf(609878777L));
您使用的 webclient 可能无法将数据转换为 String 类型(我相信他在幕后所做的事情)。
对您有好处 - 您可以通过手动将数据转换为 String 来控制要发布的内容。所以你不必依赖内部 serializers/casts/etc.
我需要通过表单数据post数据到休息api。 这些值是长值。我写了下面的代码,它给出了错误。
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();
错误:java.lang.ClassCastException:class java.lang.Long 无法转换为 class java.lang.String(java.lang.Long 和 java.lang.String在加载程序 'bootstrap') 的模块 java.base 中。
通常它是 string, string 的例外多值映射。如何post其他类型的数据? 键是字符串,值是长?
对于 MultiValueMap.
,您需要将所有数据放入 String 格式MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
formData.add("commentId", String.valueOf(98578976L));
formData.add("reactionID", String.valueOf(609878777L));
您使用的 webclient 可能无法将数据转换为 String 类型(我相信他在幕后所做的事情)。
对您有好处 - 您可以通过手动将数据转换为 String 来控制要发布的内容。所以你不必依赖内部 serializers/casts/etc.