首先,对不起,我是个新手。
我正试图用HTTPBuilder (https://github.com/jgritman/httpbuilder)向谷歌提出一个请求
https://developers.google.com/identity/protocols/OAuth2ForDevices#obtainingacode
这是我的密码
def code = new HTTPBuilder(oauthUrl).request(POST, URLENC) { req ->
body = [client_id: clientId, scope: 'https://docs.google.com/feeds']
headers.'Accept' = 'application/json'
headers.'Content-Type' = 'application/x-www-form-urlencoded'
response.success = { resp, reader ->
println resp.statusLine
println reader
println reader.text
}
response.failure = { resp, reader ->
println resp.statusLine
println reader.text
}
}当我运行这段代码时,我得到了println reader的输出--而且resp.statusLine显示了200 Ok,但是我得到了一个用于println reader.text的null
我不明白为什么会这样..。
与curl相同的请求会给我正确的答复。
{
"device_code" : "XXXXX",
"user_code" : "XXXX",
"verification_url" : "https://www.google.com/device",
"expires_in" : 1800,
"interval" : 5
}编辑
这是输出
编辑2
我可以使用以下代码访问响应(我不确定它是不是干净的代码)
response.success = { resp, reader ->
def stream
reader.each { key, value ->
stream = key
}
stream
}发布于 2016-02-11 10:15:08
据我所知,reader是一个已经解析的Map --您没有得到流的实例,而是已经解析的响应。因为没有text键,所以可以获得null。尝试:
println reader.device_code应该会很好的。
您还可以检查reader是什么:
println reader.getClass()https://stackoverflow.com/questions/35321190
复制相似问题