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.

Reply via email to