0

我在使用 Groovy 脚本时遇到问题,试图在 Hipchat 中使用 Unirest 发布消息。

Caught: java.lang.RuntimeException: Serialization Impossible. Can't find an ObjectMapper implementation.
java.lang.RuntimeException: Serialization Impossible. Can't find an ObjectMapper implementation.
at com.mashape.unirest.request.HttpRequestWithBody.body(HttpRequestWithBody.java:155)
at com.mashape.unirest.request.HttpRequestWithBody$body.call(Unknown Source)
at 011.run(011.groovy:15)

这就是脚本:

@Grab(group='com.mashape.unirest', module='unirest-java', version='1.4.9')
import com.mashape.unirest.http.JsonNode
import com.mashape.unirest.http.HttpResponse
import com.mashape.unirest.http.Unirest

def apiToken = " [Token] "

Unirest.clearDefaultHeaders()

Unirest.post("https://api.hipchat.com/v2/room/ [Number] /message" )
.header("Content-Type", "application/json" )
.queryString('auth_token', apiToken)
.body(["message": "Test", "notify": True])
.asString()

预先感谢您的帮助。

4

1 回答 1

1

您正在传递 a Mapto .body(...),但文档说它需要 a String,或 a JsonNode,或 an Object,而对于Objects 您将需要更多配置来指定它们的序列化方式(并且 aMap属于该类别)。

也许您可以告诉 Groovy 从您的Map对象中为您生成一个 JSON 字符串值:

.body(JsonOutput.toJson(["message": "Test", "notify": true]))

JsonOutput在包装中groovy.json

于 2017-04-29T15:37:58.830 回答