Spring 如何正确地将车身传递到弹簧座模板?
解决方案:获取此特定信息的API端点是唯一不同于所有其他端点的端点。因此,我试图联系一个过时的人 这篇文章描述的一切都很有魅力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
使用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传入的结构相同。我如何检查呢?我投票结束这个问题,因为问题不在最初出现的地方。