我想使用REST API(.NET)併發出合併查詢以執行neo4j數據庫。我的查詢是:Neo4j,Cypher合併查詢不會與REST API執行
{ "query" : "MERGE (n:Person { props }) ON CREATE SET n.id = 55 RETURN n" , "params" :{ "props" : { "name" : 'Mahsa', "lastname" : 'Hassankashi' } }}
OR
{ "query" : "MERGE (n:Person { props }) ON CREATE SET n.id = {PersonID} RETURN n" , "params" :{ "props" : { "name" : 'Mahsa' } , "PersonID" : 55} }
但我的 「HttpWebResponse響應」 是空,因爲當我送的時候HttpWebResponse返回null它在這一行流呢:
Stream requestStream = request.GetRequestStream();
它具有長度和位置錯誤:
(1):'requestStream.Position'拋出了一個例外的typ e'System.NotSupportedException'
(2)。 「這個流不支持查找操作。」,這意味着我的查詢不正確。我如何糾正查詢。
重要的是,我已經從我的httpwebresponse獲取其他密碼查詢的答案,這意味着我的發送請求(密碼)和接收響應是可能的其他查詢。
下面的查詢工作,當我把它直接放在Neo4j的2.2.4:
MERGE (n:Person { name : "mahsa", lastname : "hassankashi" }) ON CREATE SET n.id=55 RETURN n
請求類:
//****** Send Cypher Query by HttpWebRequest and Stream
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create(url);
request.KeepAlive = true;
request.ProtocolVersion = HttpVersion.Version10;
request.Method = methodType;
request.Timeout = Timeout.Infinite;
byte[] postBytes = Encoding.UTF8.GetBytes(json);
request.ContentType = "application/json; charset=UTF-8";
request.Accept = "application/json";
request.ContentLength = postBytes.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Close();
response = (HttpWebResponse)request.GetResponse();
謝謝你在先進的幫助。
也許你可以共享代碼示例,其中請求構建? – FylmTM
@FylmTM,我寫了請求類,但它對其他密碼查詢正常工作。 –
您是否具有涉及「人員」標籤的唯一性約束? – cybersam