1 19 20 package com.maverick.http; 21 22 import java.io.IOException ; 23 import java.util.Enumeration ; 24 import java.util.Hashtable ; 25 import java.util.Vector ; 26 27 31 public abstract class HttpMethod { 32 33 private String name; 34 private String uri; 35 private Hashtable parameters = new Hashtable (); 36 private Vector parameterNames = new Vector (); 37 38 public HttpMethod(String name, String uri) { 39 this.uri = uri; 40 this.name = name; 41 } 42 43 public String getName() { 44 return name; 45 } 46 47 public String getURI() { 48 return uri; 49 } 50 51 public String getVersion() { 52 return "1.1"; } 54 55 public HttpResponse execute(HttpRequest request, HttpConnection con) throws IOException { 56 57 request.setHeaderField("Host", con.getHostHeaderValue()); request.setHeaderField("User-Agent", HttpClient.USER_AGENT); request.performRequest(this, con); 61 return new HttpResponse(con); 62 } 63 64 71 public void addParameter(String name, String value) { 72 if(value == null) { 73 throw new IllegalArgumentException ("Null value"); 74 } 75 76 if (!parameters.containsKey(name)) { 77 parameters.put(name, new Vector ()); 78 parameterNames.addElement(name); 79 } 80 81 Vector v = (Vector )parameters.get(name); 82 v.addElement(value); 83 } 84 85 91 public Enumeration getParameterNames() { 92 return parameterNames.elements(); 93 } 94 95 104 public String getParameter(String headerName, int num) { 105 Vector f = (Vector ) parameters.get(headerName); 106 if (f == null) 107 return null; 108 else { 109 if (f.size() > num) 110 return (String )f.elementAt(num); 111 else 112 return null; 113 } 114 } 115 116 121 public String getParameter(String name) { 122 return getParameter(name, 0); 123 } 124 125 132 public void setParameter(String name, String value) { 133 if(value == null) { 134 throw new IllegalArgumentException ("Null value"); 135 } 136 Vector v = new Vector (); 137 parameters.put(name, v); 138 if(!parameterNames.contains(name)) { 139 parameterNames.addElement(name); 140 } 141 v.addElement(value); 142 } 143 144 149 public void removeParameter(String name) { 150 if (parameters.containsKey(name)) { 151 parameterNames.removeElement(name); 152 } 153 } 154 155 158 public void clearParameters() { 159 parameters.clear(); 160 parameterNames.removeAllElements(); 161 } 162 163 169 public int getHeaderFieldCount(String name) { 170 Vector f = (Vector ) parameters.get(name); 171 return f == null ? 0 : f.size(); 172 } 173 174 181 public String [] getParameterValues(String name) { 182 Vector f = (Vector ) parameters.get(name); 183 if (f != null) { 184 String [] values = new String [f.size()]; 185 f.copyInto(values); 186 return values; 187 } else { 188 return null; 189 } 190 } 191 192 199 public Vector getParameterValueList(String name) { 200 return (Vector ) parameters.get(name); 201 } 202 203 } 204 | Popular Tags |