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

No signature of method: groovyx.net.http.HTTPBuilder.get() in intellij

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

groovy.lang.MissingMethodException: No signature of method: groovyx.net.http.HTTPBuilder.get() is applicable for argument types: (groovyx.net.http.Method, groovyx.net.http.ContentType, com.company.sample.mypackage.myClient$_foo_closure1) values: [GET, application/json, com.company.sample.mypackage.myClient$_foo_closure1@7ee6e5bc] Possible solutions: 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...以防这是问题的一部分。

您应该调用 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'
        }
    }
}