2017-03-31 59 views
0

我尝试从HTTPBuilder的URL获取JSON,但此代码返回Exception,返回此错误“方法抛出'groovy.lang.MissingPropertyException'异常。”测试API Grails

static request(String path, boolean isGet){ 
    def myClient = new HTTPBuilder("${HOST}${path}") 
    def jsonResp = [:] 

    try{ 
     if(isGet){ 
      log.info "[EXAMPLE GET] ${HOST}${path}" 
      myClient.get(requestContentType: ContentType.JSON){ resp, json -> 
       jsonResp = resp 
      } 
     } 
    }catch(Exception e){ 
     println "erro: " 
     log.info "[EXAMPLE ERROR]: ${e.message}" 
     println(e.message) 
    } 
    jsonResp 
} 

回答

0

什么是MissingPropertyException?

我试着在一个脚本(有几个mods)你的例子,这次返回json而不是resp这似乎工作。

import groovy.transform.Field 
import groovyx.net.http.ContentType 
import groovyx.net.http.HTTPBuilder 

@Field final String HOST = 'http://echo.jsontest.com' 

def resp = request("/name/jon", true) 
println resp.toString() 


def request(String path, boolean isGet){ 

    def myClient = new HTTPBuilder("${HOST}${path}") 
    def jsonResp = [:] 

    try{ 
     if(isGet){ 
      println "[EXAMPLE GET] ${HOST}${path}" 
      myClient.get(requestContentType: ContentType.JSON){ resp, json -> 
      jsonResp = json 
     } 
    } 
} 
catch(Exception e) { 
     println(e.message) 
    } 
    jsonResp 

}

输出是:

{"name":"jon"}