我正在尝试使用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 ......以防这是问题的一部分。
答案 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'
}
}
}