Advertisement
Guest User

ReadRequest

a guest
May 28th, 2015
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.87 KB | None | 0 0
  1.  private List<String> readRequest(PushbackInputStream pis)
  2.                 throws IOException {
  3.             ByteArrayOutputStream bos = new ByteArrayOutputStream();
  4.             int state = 0;
  5.             l: while (true) {
  6.                 int b = pis.read();
  7.                 if (b == -1)
  8.                     return null;
  9.                 if (b != 13) {
  10.                     bos.write(b);
  11.                 }
  12.                 switch (state) {
  13.                     case 0:
  14.                         if (b == 13) {
  15.                             state = 1;
  16.                         } else if (b == 10)
  17.                             state = 4;
  18.                         break;
  19.                     case 1:
  20.                         if (b == 10) {
  21.                             state = 2;
  22.                         } else
  23.                             state = 0;
  24.                         break;
  25.                     case 2:
  26.                         if (b == 13) {
  27.                             state = 3;
  28.                         } else
  29.                             state = 0;
  30.                         break;
  31.                     case 3:
  32.                         if (b == 10) {
  33.                             break l;
  34.                         } else
  35.                             state = 0;
  36.                         break;
  37.                     case 4:
  38.                         if (b == 10) {
  39.                             break l;
  40.                         } else
  41.                             state = 0;
  42.                         break;
  43.                 }
  44.             }
  45.             byte[] request = bos.toByteArray();
  46.             String requestStr = new String(request, StandardCharsets.US_ASCII);
  47.             String[] split = requestStr.split("\n");
  48.             ArrayList<String> lines = new ArrayList<>();
  49.             for (String line : split) {
  50.                 lines.add(line);
  51.             }
  52.             return lines;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement