0

私は実際にNeo4jでコミュニティプラグインを使用しており、Javaを介してPOSTリクエストを作成してneo4jサーバーにクエリを実行しようとしています。

私は常に java.io.IOException: Server returned HTTP response code: 400 を取得していますが、同じ URL への同様の呼び出しは JavaScript を介して機能しますが、ビジネス ロジックは Java を介して呼び出しを行うことを示唆しています。

ここに私のコードスニペットがあります:

String baseURL="ip_of_server";
    StringBuilder builder = new StringBuilder();
    try {
        URL url = new URL(baseURL);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoOutput(true);
        connection.setDoInput(true);
        connection.setRequestMethod("POST"); 
        connection.setRequestProperty("Content-Type", "application/json");
        OutputStream os=connection.getOutputStream();
         OutputStreamWriter writer = new OutputStreamWriter(os,Charset.forName("UTF-8"));


         System.out.println(url);
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("query", "start x = node(3) return x");
         HashMap<String,String> test3= new HashMap<String,String>();
         params.put("params", test3);
         ObjectMapper temp = new ObjectMapper();

         String testString= temp.writeValueAsString(params);
         writer.write(testString);
         writer.close();
         os.close();


        String line = null;
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                connection.getInputStream()));
        while ((line = reader.readLine()) != null) {
            builder.append(line);

        }
        System.out.println("Response from server for request : " + url.toString() + " is " );
        System.out.println(builder.toString());



    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }

助言がありますか?

4

1 に答える 1

0

「=」などはエンコーディングによって他の文字に変換されるため、neo4jはエラーをスローするため、必要なのはパーサーです。

于 2013-09-06T18:21:55.323 に答える