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 }