@Override
    public synchronized void execute() {
        super.execute();

        try {
            // Write requestBody if any
            if (this.urlRequest.getHTTPBody() != null) {
                this.urlRequest.setRequestProperty("Content-Length", "" + Integer.toString(this.urlRequest.getHTTPBody().length));
                this.urlRequest.setDoOutput(true);

                this.urlRequest.getOutputStream().write(this.urlRequest.getHTTPBody());
            }

            InputStream is = urlRequest.getInputStream();
            BufferedInputStream bin = new BufferedInputStream(is);

            int c;
            while (-1 != (c = bin.read())) {
                this.accumulationBuffer.write(c);
            }
            bin.close();
            is.close();

        } catch (IOException e) {
            if (this.completion != null) {
                this.completion.failure(this.urlRequest, e);
            }
        }
    }