1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.http;
21
22 import java.nio.ByteBuffer;
23 import java.util.Collections;
24 import java.util.List;
25 import java.util.Map;
26
27 import org.apache.mina.http.api.HttpMethod;
28 import org.apache.mina.http.api.HttpPduEncodingVisitor;
29 import org.apache.mina.http.api.HttpRequest;
30 import org.apache.mina.http.api.HttpVersion;
31
32
33
34
35
36 public class HttpRequestImpl implements HttpRequest {
37
38 private final HttpVersion version;
39
40 private final HttpMethod method;
41
42 private final String requestedPath;
43
44 private final Map<String, String> headers;
45
46 public HttpRequestImpl(HttpVersion version, HttpMethod method, String requestedPath, Map<String, String> headers) {
47 this.version = version;
48 this.method = method;
49 this.requestedPath = requestedPath;
50 this.headers = Collections.unmodifiableMap(headers);
51 }
52
53
54
55
56 @Override
57 public HttpVersion getProtocolVersion() {
58 return version;
59 }
60
61
62
63
64 @Override
65 public String getContentType() {
66 return headers.get("content-type");
67 }
68
69
70
71
72 @Override
73 public boolean isKeepAlive() {
74
75 return false;
76 }
77
78
79
80
81 @Override
82 public String getHeader(String name) {
83 return headers.get(name);
84 }
85
86
87
88
89 @Override
90 public boolean containsHeader(String name) {
91 return headers.containsKey(name);
92 }
93
94
95
96
97 @Override
98 public Map<String, String> getHeaders() {
99 return headers;
100 }
101
102
103
104
105 @Override
106 public boolean containsParameter(String name) {
107
108 return false;
109 }
110
111
112
113
114 @Override
115 public String getParameter(String name) {
116
117 return null;
118 }
119
120
121
122
123 @Override
124 public Map<String, List<String>> getParameters() {
125
126 return null;
127 }
128
129
130
131
132 @Override
133 public HttpMethod getMethod() {
134 return method;
135 }
136
137 @Override
138 public ByteBuffer encode(HttpPduEncodingVisitor visitor) {
139 return visitor.visit(this);
140 }
141
142
143
144
145 @Override
146 public String toString() {
147 StringBuilder sb = new StringBuilder();
148
149 sb.append("HTTP REQUEST METHOD: ").append(method).append('\n');
150 sb.append("VERSION: ").append(version).append('\n');
151 sb.append("PATH: ").append(requestedPath).append('\n');
152
153 sb.append("--- HEADER --- \n");
154
155 for (String key : headers.keySet()) {
156 String value = headers.get(key);
157 sb.append(key).append(':').append(value).append('\n');
158 }
159
160 return sb.toString();
161 }
162 }