momal 0 Newbie Poster

I have a localhost server running on port 4000 which listens to requests sent to it and executes commands and returns output to client in a json format.

I'm actually trying to run docker commands for the gcc compiler image.

I have a code in PHP that is working just fine. It is the following:

protected function HTTPRequest($url, $command){
        //open connection
        $ch = curl_init();
        $fields['command'] = $command;
        //set the url, number of POST vars, POST data
        curl_setopt($ch,CURLOPT_URL, $url);
        curl_setopt($ch,CURLOPT_POST, 1);
        curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($fields));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        //execute post
        $result = curl_exec($ch);
        //close connection
        return $result;

<p> the url here is


and the command is

docker run --rm -v ~/test.c:/usr/src/test.c gcc:4.9 /bin/bash -c 'gcc -o /usr/src/myapp /usr/src/test.c && /usr/src/./myapp'

This works absolutely fine. But I need this to be run from a jsp page. So I found the equivalent of this whole. I tried it, put in the url and the command but it does nothing.

Can anyone tell what's wrong? I'm a newbie at this and have no idea what's going on.

public String sendData() throws IOException {
        // curl_init and url
        URL url = new URL("http://localhost:4000");
        HttpURLConnection con = (HttpURLConnection) url.openConnection();

        //  CURLOPT_POST


        String postData = "docker run --rm -v ~/test.c:/usr/src/test.c gcc:4.9 /bin/bash -c 'gcc -o /usr/src/myapp /usr/src/test.c && /usr/src/./myapp'";
        con.setRequestProperty("Content-length", String.valueOf(postData.length()));


        DataOutputStream output = new DataOutputStream(con.getOutputStream());

        // "Post data send ... waiting for reply");
        int code = con.getResponseCode(); // 200 = HTTP_OK
        System.out.println("Response    (Code):" + code);
        System.out.println("Response (Message):" + con.getResponseMessage());

        // read the response
        DataInputStream input = new DataInputStream(con.getInputStream());
        int c;
        StringBuilder resultBuf = new StringBuilder();
        while ( (c = != -1) {
            resultBuf.append((char) c);

        return resultBuf.toString();
Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.20 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.