Creating ticket using monday.com API

I want to create a ticket on monday.com. I wrote HTTP method which makes POST call on specific monday server and as a parameter I’m passing graphql query. but unfortunately with no success, I think I’m passing query parameters in a wrong way, but I can’t figure what exactly I’m doing wrong.

Below is my code

import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;



public class Monday {

    static int id = 1249501957;
    static String token = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    static String query = "mutation {\n"
            + "    create_item(item_name:\"heyyyyyyy\", board_id:" + id + "){\n"
            + "        id\n"
            + "    }\n"
            + "}";
    static String targetURL = "https://levank707.monday.com/projects";



    public static void main(String[] args) throws Exception {

        executePost(targetURL,query);
        
    }

        public static String executePost(String targetURL, String query) {
              HttpURLConnection connection = null;

              try {
                //Create connection
                URL url = new URL(targetURL);
                connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("POST");
                connection.setRequestProperty("Content-Type", 
                    "application/graphql");

                connection.setRequestProperty("Content-Length", 
                    Integer.toString(query.getBytes().length));
                connection.setRequestProperty("Authorization",token );  

                connection.setUseCaches(false);
                connection.setDoOutput(true);

                //Send request
                DataOutputStream wr = new DataOutputStream (
                    connection.getOutputStream());
                wr.writeBytes(query);
                wr.close();

                //Get Response  
                InputStream is = connection.getInputStream();
                BufferedReader rd = new BufferedReader(new InputStreamReader(is));
                StringBuilder response = new StringBuilder(); // or StringBuffer if Java version 5+
                String line;
                while ((line = rd.readLine()) != null) {
                  response.append(line);
                  response.append('\r');
                }
                rd.close();
                return response.toString();
              } catch (Exception e) {
                e.printStackTrace();
                return null;
              } finally {
                if (connection != null) {
                  connection.disconnect();
                }
              }

        }}

Here is response

I also tried to send json data as a parameter like this
{
“query”:“mutation”,
“operationName”:“create_item”,
“variables”:{
“item_name”:“shqmeni shen dedas sheveci”,
“board_id”:1249501957},
“id”:{

  }

}

but I am getting this error from server,
{“errors”:[{“message”:“Unexpected end of document”,“locations”:}],“account_id”:8845295}