Thanks Stefan. I don't think I am understanding how this works. Your gist seems to only return a java.util.concurrent.FutureTask. Using get on them only returns a groovyx.net.http.HttpResponseDecorator.
On Tue, Dec 24, 2013 at 10:02 AM, Stefan Armbruster <[email protected]>wrote: > Hi Alex, > > you need to pass in the cypher query in the request's body and not as > query param. See https://gist.github.com/sarmbruster/8114445 for a > working example. > > Cheers, > Stefan > > > 2013/12/23 Alex Frieden <[email protected]> > >> Hi all, >> >> Might be the wrong place to post this but I have been messing around with >> async http builders trying to get basic cypher queries to work. It works >> with Http Builders but can't get it to work with the async version. >> >> @Grab(group='org.codehaus.groovy.modules.http-builder', >> module='http-builder', version='0.6' ) >> @Grab(group='net.sf.json-lib', module='json-lib', version='2.4', >> classifier='jdk15' ) >> >> import groovyx.net.http.* >> import static groovyx.net.http.ContentType.* >> import static groovyx.net.http.Method.* >> >> def query(statement, params,success, error) { >> def http = new HTTPBuilder( 'http://localhost:7474' ) >> http.request( POST, JSON ) { >> uri.path = '/db/data/cypher/' >> headers.'X-Stream' = 'true' >> requestContentType = JSON >> body = [ query : statement , params : params ?: [:] ] >> >> // uri.query = [ param : 'value' ] >> >> response.success = { resp, json -> >> if (success) success(json) >> else { >> println "Status ${resp.statusLine} Columns ${json.columns}\nData: >> ${json.data}" >> } >> } >> >> response.failure = { resp, message -> >> def >> result=[status:resp.statusLine.statusCode,statusText:resp.statusLine.reasonPhrase] >> result.headers = resp.headers.collect { h -> [ (h.name) : >> h.value ] } >> result.message = message >> if (error) { >> error(result) >> } else { >> println "Status: ${result.status} : ${result.statusText} " >> println 'Headers: ${result.headers}' >> println 'Message: ${result.message}' >> } >> } >> } >> } >> >> query("MATCH n RETURN n;",[],{ println "Success: ${it}" },{ println >> "Error: ${it}" }) >> >> >> However I have tried this with the AsyncHttpBuilder. Couldn't get it to >> work. Now I am trying a simple thing and have been unable to get it to >> give anytype of useful result. >> >> @Test >> public void testQueue() >> { >> def http = new AsyncHTTPBuilder( poolSize : 1 , >> uri : 'http://localhost:7474/db/data/cypher' ) >> def responses = [] >> responses << http.post(query : [q: "MATCH n RETURN n;"]) {return >> it} >> >> >> if (!responses.every{it.done}) >> { >> println 'waiting...' >> Thread.sleep(2000) >> } >> responses.each { >> println(it) >> } >> http.shutdown() >> } >> >> Any thoughts? Thanks! >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Neo4j" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- > You received this message because you are subscribed to the Google Groups > "Neo4j" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- Alexander Frieden -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
