首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTTPBuilder和formUrlEncoded

HTTPBuilder和formUrlEncoded
EN

Stack Overflow用户
提问于 2016-02-10 16:51:43
回答 1查看 874关注 0票数 0

首先,对不起,我是个新手。

我正试图用HTTPBuilder (https://github.com/jgritman/httpbuilder)向谷歌提出一个请求

https://developers.google.com/identity/protocols/OAuth2ForDevices#obtainingacode

这是我的密码

代码语言:javascript
复制
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.textnull

我不明白为什么会这样..。

与curl相同的请求会给我正确的答复。

代码语言:javascript
复制
{
  "device_code" : "XXXXX",
  "user_code" : "XXXX",
  "verification_url" : "https://www.google.com/device",
  "expires_in" : 1800,
  "interval" : 5
}

编辑

这是输出

  • HTTP/1.1 200正常
  • [{ "device_code“:"XXXk","user_code”:"XXX","verification_url“:"https://www.google.com/device","expires_in”:1800,"interval“:5 }:null]

编辑2

我可以使用以下代码访问响应(我不确定它是不是干净的代码)

代码语言:javascript
复制
response.success = { resp, reader ->
    def stream
    reader.each { key, value ->
        stream = key
    }
    stream
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 10:15:08

据我所知,reader是一个已经解析的Map --您没有得到流的实例,而是已经解析的响应。因为没有text键,所以可以获得null。尝试:

代码语言:javascript
复制
println reader.device_code

应该会很好的。

您还可以检查reader是什么:

代码语言:javascript
复制
println reader.getClass()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35321190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档