没有方法的签名:intellij中的groovyx.net.http.HTTPBuilder.get()

时间:2015-05-31 18:08:11

标签: groovy intellij-idea httpbuilder

我正在尝试使用groovy的HTTPBuilder。我得到了:

  

groovy.lang.MissingMethodException:没有方法签名:   groovyx.net.http.HTTPBuilder.get()适用于参数类型:   (groovyx.net.http.Method,groovyx.net.http.ContentType,   com.company.sample.mypackage.myClient $ _foo_closure1)值:[GET,   应用程序/ JSON,   com.company.sample.mypackage.myClient$_foo_closure1@7ee6e5bc]可能   解决方案:grep(),get(java.util.Map),get(java.util.Map,   groovy.lang.Closure),wait(),getUri(),any()

我认为我使用的内容几乎与HTTPBuilder文档中的示例完全相同。我想知道我的问题是否与我在Intellij中设置项目的环境有关?这是我第一次在intellij建立一个maven项目,所以我很怀疑。

package com.company.sample.mypackage
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.JSON


public class myClient {

    public static void main(String[] args) {
        foo();
    }

    public static void foo() {

        def http = new HTTPBuilder( 'http://foo.com' )
        http.get(GET, JSON) { <---EXCEPTION HAPPENS HERE
            uri.path = '/api/myapi'

            response.success = { resp, json ->
                println 'Successful'
            }
            response.failure = { resp ->
                println 'failure'
            }
        }

    }
}

另请注意:我正在使用java 1.7,groovy 2.4.3和http-builder 0.6 ......以防这是问题的一部分。

1 个答案:

答案 0 :(得分:1)

您应该调用request而不是get

public static void foo() {

    def http = new HTTPBuilder( 'http://foo.com' )
    http.request(GET, JSON) { 
        uri.path = '/api/myapi'

        response.success = { resp, json ->
            println 'Successful'
        }
        response.failure = { resp ->
            println 'failure'
        }
    }
}