1 package com.quikj.client.framework; 2 3 import java.util.*; 4 5 public abstract class HTTPMessage 6 { 7 public HTTPMessage() 8 { 9 } 10 11 public abstract String format(); 12 13 public void addHeader (String key, String value) 14 { 15 HTTPMessageHeader header = new HTTPMessageHeader (key, value); 16 headerFields.addElement (header); 17 } 18 19 public String findHeader (String key) 20 { 21 int size = headerFields.size(); 22 23 for (int i = 0; i < size; i++) 24 { 25 HTTPMessageHeader header = (HTTPMessageHeader)headerFields.elementAt (i); 26 String hkey = header.getKey(); 27 28 if (hkey.equalsIgnoreCase(key) == true) 29 { 30 return header.getValue(); 31 } 32 } 33 34 return null; 35 } 36 37 public int getNumHeaders() 38 { 39 return headerFields.size(); 40 } 41 42 public HTTPMessageHeader getHeaderAt (int index) 43 { 44 return (HTTPMessageHeader)headerFields.elementAt (index); 45 } 46 47 public void setBody (char[] body) 48 { 49 this.body = body; 50 } 51 52 public int getBodyLength() 53 { 54 if (body == null) 55 { 56 return 0; 57 } 58 else 59 { 60 return body.length; 61 } 62 } 63 64 public char[] getBody() 65 { 66 return body; 67 } 68 69 public String formatHeaderAndBody() 70 { 71 StringBuffer buffer = new StringBuffer (); 72 int size = getNumHeaders(); 73 74 for (int i = 0; i < size; i++) 75 { 76 HTTPMessageHeader header = getHeaderAt (i); 77 buffer.append (header.getKey() + ": " + header.getValue() 78 + "\r\n"); 79 } 80 81 int body_length = getBodyLength(); 82 if (body_length > 0) 83 { 84 buffer.append ("Content-Length: " 85 + body_length 86 + "\r\n"); 87 } 88 89 buffer.append ("\r\n"); 90 91 if (body_length > 0) 92 { 93 buffer.append (getBody()); 94 } 95 96 return buffer.toString(); 97 } 98 99 private Vector headerFields = new Vector(); 100 private char[] body; 101 } 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | Popular Tags |