Spring 如何正确地将车身传递到弹簧座模板?

Spring 如何正确地将车身传递到弹簧座模板?,spring,kotlin,resttemplate,Spring,Kotlin,Resttemplate,解决方案:获取此特定信息的API端点是唯一不同于所有其他端点的端点。因此,我试图联系一个过时的人 这篇文章描述的一切都很有魅力 使用kotlin和spring,我想向API发送POST请求 这是一个通过邮递员生成的卷曲,可以正常工作: curl --location --request POST 'URL' \ --header 'Content-Type: application/json' \ --data-raw '{ "username":"use

解决方案:获取此特定信息的API端点是唯一不同于所有其他端点的端点。因此,我试图联系一个过时的人

这篇文章描述的一切都很有魅力


使用kotlin和spring,我想向API发送POST请求

这是一个通过邮递员生成的卷曲,可以正常工作:

curl --location --request POST 'URL' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username":"username",
    "password":"password"
}'
但是,对于使用以下代码的spring+rest模板,主体似乎没有正确解析,因为我正在联系的API向我发回401,当提供的密码/用户名不正确/丢失时就会发生这种情况

val body = JwtQuery(getUsername(), getPassword())
return restTemplate.postForObject(url, body, Jwt::class.java)!!
这是JwtQuery类:

data class JwtQuery (
        val username: String,
        val password: String
)
请注意,
getUsername()
getPassword()
返回预期值

我做错了什么


编辑1:设置标题

使用:

val body = JwtQuery(getUsername(), getPassword())
val headers = HttpHeaders()
headers.contentType = MediaType.APPLICATION_JSON
val bodyEntity = HttpEntity(body, headers)
return restTemplate.postForObject(url, bodyEntity, Jwt::class.java)!!
仍然返回相同的错误(401)


编辑2:封送JwtQuery

val body = JwtQuery(mesProperties.getUsername(), mesProperties.getPassword())
val marshaled = ObjectMapper().writeValueAsString(body)
println(marshaled)
输出:
{“username”:“username”,“password”:“password”}

您是否尝试设置正确的HTTP头(例如)?@Smutje我编辑了这个问题。headersOK也有同样的问题,当你对
JwtQuery
类型的对象进行marshall处理时,你得到的结构与你通过
--data raw
?@Smutje传入的结构相同。我如何检查呢?我投票结束这个问题,因为问题不在最初出现的地方。