首先,对不起我是groovy的新手
我尝试使用HTTPBuilder(https://github.com/jgritman/httpbuilder)向Google发出请求
https://developers.google.com/identity/protocols/OAuth2ForDevices#obtainingacode
这是我的代码
/* comment here */
当我运行此代码时,我得到了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
显示200 Ok,但我得到resp.statusLine
null
我不明白为什么会发生这种情况......
与curl相同的请求向我发送了正确的回复
println reader.text
这是ouput
我可以使用以下代码访问响应(我不确定它是干净的代码)
{
"device_code" : "XXXXX",
"user_code" : "XXXX",
"verification_url" : "https://www.google.com/device",
"expires_in" : 1800,
"interval" : 5
}
答案 0 :(得分:0)
据我所知reader
已经解析了Map
- 你没有获得流的实例,而是已经解析的响应。由于没有text
密钥,因此您将获得null。尝试:
println reader.device_code
它应该运作良好。
您还可以查看reader
的内容:
println reader.getClass()