gpt4 book ai didi

java - 如何在http post请求中插入cypher语句

转载 作者:行者123 更新时间:2023-12-02 05:52:31 25 4
gpt4 key购买 nike

我刚刚开始使用 neo4J,想尝试事务性密码端点。我的 Neo4J 服务器在 localhost:7474/上运行,并插入了电影数据。

如上所述in the documentation ,我必须发出一个帖子请求并包含一些参数。不幸的是,我不知道如何在 POST 请求中包含我的查询。据我了解,我必须传递一个 JSON 字符串。

private static String sendPost() throws Exception {

String url = "http://localhost:7474/db/data/transaction";
String statement ="[ { \"statement\" : \"MATCH (n:Person) RETURN n.name, n.born\"} ]";



HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);

List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair("Accept", "application/json; charset=UTF-8"));
urlParameters.add(new BasicNameValuePair("Content-Type", "application/json"));
urlParameters.add(new BasicNameValuePair("statements", statement));

post.setEntity(new UrlEncodedFormEntity(urlParameters));

HttpResponse response = client.execute(post);

StringBuilder builder = new StringBuilder();

builder.append("\nSending 'POST' request to URL : " + url+"<br>");
builder.append("Post parameters : " + post.getEntity()+"<br>");
builder.append("Response Code : " + response.getStatusLine().getStatusCode()+"<br>");

BufferedReader rd = new BufferedReader(
new InputStreamReader(response.getEntity().getContent()));



StringBuffer result = new StringBuffer();
result.append("<p>");
String line = "";
while ((line = rd.readLine()) != null) {
result.append(line+"\n");
}

result.append("</p>");

return builder.toString();

}

当我执行代码时,我得到以下输出:

Sending 'POST' request to URL : http://localhost:7474/db/data/transaction
Post parameters : org.apache.http.client.entity.UrlEncodedFormEntity@76adb5f6
Response Code : 415

任何人都可以帮助我了解如何在 POST 请求中包含我的查询吗?

最佳答案

http://docs.neo4j.org/chunked/stable/rest-api-transactional.html

看一下,您可以看到 POST 请求的正文不是服务器所期望的,即您应该发送整个 JSON 文档,而不是以“语句”作为键的 k/v 对,并且您的 JSON Cypher 查询作为值。请记住,您在此处发送 JSON,而不是 URLEncoded 正文。

此外,您似乎正在将“Accept”和“Content-Type”k/v 对设置为 POST 正文的一部分,而实际上它们应该是 header 的一部分。

另外,请考虑使用 Cypher 端点:http://docs.neo4j.org/chunked/stable/rest-api-cypher.html

HTH

关于java - 如何在http post请求中插入cypher语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23417615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com