Example usage for org.apache.commons.collections.primitives ArrayByteList ArrayByteList

List of usage examples for org.apache.commons.collections.primitives ArrayByteList ArrayByteList

Introduction

In this page you can find the example usage for org.apache.commons.collections.primitives ArrayByteList ArrayByteList.

Prototype

public ArrayByteList() 

Source Link

Document

Construct an empty list with the default initial capacity.

Usage

From source file:com.isecpartners.gizmo.HttpResponse.java

/**
*
* @param s Value to print into the response.
* @return HttpResponse based on the input parameter s.
*//*from w w w.j a v a 2s.  c  o  m*/
static HttpResponse create(String s) {
    byte[] contents = s.getBytes();
    ArrayByteList tempArray = new ArrayByteList();
    for (int ii = 0; ii < contents.length; ii++) {
        tempArray.add(contents[ii]);
    }
    HttpResponse resp = new HttpResponse();
    resp.setBlist(tempArray);
    resp.setHeader("HTTP/1.0 200 OK\r\n");
    return resp;
}

From source file:com.isecpartners.gizmo.HttpResponse.java

public void processResponse(InputStream in) throws FailedRequestException {
    StringBuffer content = new StringBuffer();
    DataInputStream inputStream = new DataInputStream(in);
    ArrayByteList blist = new ArrayByteList();
    String header = null;/*from   www .  j  a  v  a 2  s  .co m*/
    int contentLength = 0;
    boolean isChunked = false;
    String line;
    try {
        line = readline(inputStream);
        while (line != null && !line.equals(ENDL)) {
            content.append(line);
            if (line.toUpperCase().contains(CONTENT_LENGTH)
                    && line.toUpperCase().indexOf(CONTENT_LENGTH) == 0) {
                String value = line.substring(line.indexOf(CONTENT_LENGTH) + CONTENT_LENGTH.length() + 2,
                        line.indexOf('\r'));
                contentLength = Integer.parseInt(value.trim());
            } else if (line.toUpperCase().contains(TRANSFER_ENCODING)) {
                if (line.toUpperCase()
                        .substring(
                                line.toUpperCase().indexOf(TRANSFER_ENCODING) + "Transfer-Encoding:".length())
                        .contains("CHUNKED")) {
                    isChunked = true;
                }
            } else if (line.toUpperCase().contains(CONTENT_ENCODING)) {
                String value = line.substring(line.indexOf(CONTENT_ENCODING) + CONTENT_ENCODING.length() + 2,
                        line.indexOf('\r'));
                value = value.trim();
                if (value.toUpperCase().equals("GZIP")) {
                    this.gzip = true;
                } else if (value.toUpperCase().equals("DEFLATE")) {
                    this.deflate = true;
                }
            }
            line = readline(inputStream);
        }
        if (line == null) {
            GizmoView.log(content.toString());
            throw new FailedRequestException();
        }

        content.append("\r\n");
        header = content.substring(0, content.indexOf("\r\n"));
        append(blist, content);

        if (contentLength != 0) {
            for (int ii = 0; ii < contentLength; ii++) {
                blist.add(inputStream.readByte());
            }
        }

        if (isChunked) {
            boolean isDone = false;
            while (!isDone) {
                byte current = inputStream.readByte();
                blist.add(current);

                int size = 0;
                while (current != '\n') {
                    if (current != '\r') {
                        size *= 16;
                        if (Character.isLetter((char) current)) {
                            current = (byte) Character.toLowerCase((char) current);
                        }
                        if ((current >= '0') && (current <= '9')) {
                            size += (current - 48);
                        } else if ((current >= 'a') && (current <= 'f')) {
                            size += (10 + current - 97);
                        }
                    }
                    current = inputStream.readByte();

                    while ((char) current == ' ') {
                        current = inputStream.readByte();
                    }
                    blist.add(current);
                }

                if (size != 0) {
                    for (int ii = 0; ii < size; ii++) {
                        int byte1 = inputStream.readByte();
                        byte blah = (byte) byte1;
                        blist.add(blah);
                    }
                    blist.add(inputStream.readByte());
                    blist.add(inputStream.readByte());
                } else {
                    byte ch = (byte) inputStream.read();
                    StringBuffer endstuff = new StringBuffer();
                    blist.add(ch);
                    endstuff.append((char) ch);
                    while (ch != '\n') {
                        ch = inputStream.readByte();
                        endstuff.append((char) ch);
                        blist.add(ch);
                    }

                    isDone = true;
                }

            }
        }

        if (inputStream.available() > 0) {
            try {
                while (true) {
                    blist.add(inputStream.readByte());
                }
            } catch (EOFException e) {
                System.out.println(e);
            }
        }
    } catch (IOException ex) {
        Logger.getLogger(HttpResponse.class.getName()).log(Level.SEVERE, null, ex);
    }

    setBlist(blist);
    setHeader(header);
    if (this.gzip) {
        addContents(unzipData(blist.toArray()));
    } else if (this.deflate) {
        addContents(deflateData(blist.toArray()));
    } else {
        addContents(content.toString());
    }
}