I'm trying to send a POST request to grab comments but it doesn't work in Java while it does work with postman.
I get an 403 Forbidden error, but on postman it retrieves the data i need just fine..
Here's the Java code I'm trying to use to replicate the behavior.
String targetUrl = YOUTBE_COMMENTS_AJAX_URL;
    String urlParameters = "action_load_comments=1&order_by_time=True&filter=jBjXVrS8nXs";
    String updatedURL = targetUrl + "?" + urlParameters;
    URL url = null;
    InputStream stream = null;
    HttpURLConnection urlConnection = null;
    try {
        url = new URL(updatedURL);
        urlConnection = (HttpURLConnection) url.openConnection();
        urlConnection.setRequestMethod("POST");
        urlConnection.setRequestProperty("content-type", "multipart/form-data");
        urlConnection.setRequestProperty("user-agent", "USER_AGENT");
        urlConnection.setDoOutput(true);
        String data = URLEncoder.encode("video_id", "UTF-8")
                + "=" + URLEncoder.encode(youtubeId, "UTF-8");
        data += "&" + URLEncoder.encode("session_token", "UTF-8") + "="
                + URLEncoder.encode(xsrfToken, "UTF-8");
        data += "&" + URLEncoder.encode("page_token", "UTF-8") + "="
                + URLEncoder.encode(pageToken, "UTF-8");
        urlConnection.connect();
        OutputStreamWriter wr = new OutputStreamWriter(urlConnection.getOutputStream());
        wr.write(data);
        wr.flush();
        stream = urlConnection.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"), 8);
        String result = reader.readLine();
        return result;
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (urlConnection != null) {
            urlConnection.disconnect();
        }
    }
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return null;
Here's an example of what postman is sending in their headers
