Cómo consultar la API Graphql de Github con Java utilizando HttpUrlConnect

No sé cuál es el problema con mi código. Sigo recibiendo el error 401 cuando bash hacer una request al GitHub. Mi aplicación utiliza la API REST antes que yo y la convierte a Graphql pero me resulta difícil

private static String makeHttpRequest(URL url) throws IOException { String jsonResponse = ""; // If the URL is null, then return early. if (url == null) { return jsonResponse; } HttpURLConnection urlConnection = null; InputStream inputStream = null; try { urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setReadTimeout(10000 /* milliseconds */); urlConnection.setConnectTimeout(15000 /* milliseconds */); urlConnection.setRequestMethod("POST"); urlConnection.setDoOutput(true); urlConnection.setDoInput(true); urlConnection.setRequestProperty("Authorization","Bearer token"); urlConnection.setRequestProperty("Content-Type", "application/json"); DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream()); wr.writeBytes("{\"query\":\"query{search(type:USER query:\"location:lagos language:java\"){userCount}}}"); wr.flush(); wr.close(); int rc = urlConnection.getResponseCode(); inputStream = urlConnection.getInputStream(); jsonResponse = readFromStream(inputStream); } catch (IOException e) { Log.e(LOG_TAG, "Problem retrieving the earthquake JSON results.", e); } finally { if (urlConnection != null) { urlConnection.disconnect(); } if (inputStream != null) { inputStream.close(); } } return jsonResponse; } 

El token del encabezado Authorization podría no ser válido. HTTP 401 = no autorizado.

Sugeriría intentar hacer la misma request con un Curl y cuando vea el éxito, aplique los mismos parameters / encabezados a HttpUrlConnection.

Encontrado el error

Hubo un problema con mi token y el formatting de consulta era incorrecto, debería haber sido

 "{\"query\": \"query { search ( type : USER, query : \\\"location:lagos\\\" ) { userCount }}\"}" 

Gracias por tu sugerencia