1 module mars.HttpRequest;
2 
3 import mars.RequestParams;
4 
5 class HttpRequest {
6 
7 	private string url;
8 	private RequestParams params;
9 	private string data;
10 	private string[string] headers;
11 	private string[string] urlParams;
12 	
13 	string getUrl() {
14 		return url;
15 	}
16 	
17 	RequestParams getParams() {
18 		return params;
19 	}
20 	
21 	string getData() {
22 		return data;
23 	}
24 	
25 	string[string] getHeaders() {
26 		return headers;
27 	}
28 
29     string[string] getUrlParams() {
30         return urlParams;
31     }
32 	
33 	private this(Builder builder) {
34 		url = builder.mUrl;
35 		params = builder.mParams;
36 		data = builder.mData;
37 		headers = builder.mHeaders;
38 		urlParams = builder.mUrlParams;
39 	}
40 	
41 	static class Builder {
42 		private string mUrl;
43 		private RequestParams mParams;
44 		private string mData;
45 		private string[string] mHeaders;
46 		private string[string] mUrlParams;
47 
48 		Builder url(string value) {
49 			mUrl = value;
50 			return this;
51 		}
52 		
53 		Builder params(RequestParams value) {
54 			mParams = value;
55 			return this;
56 		}
57 		
58 		Builder data(string value) {
59 			mData = value;
60 			return this;
61 		}
62 		
63 		Builder headers(string[string] value) {
64 			mHeaders = value;
65 			return this;
66 		}
67 
68 		Builder urlParams(string[string] value) {
69             mUrlParams = value;
70             return this;
71         }
72 
73 		HttpRequest build() {
74 			return new HttpRequest(this);
75 		}
76 	}
77 }