YourHttpService
YourHttpService is an example of common HTTP utilities that might be required while
building a partner package. All user gateway API classes will be different based on your
needs. However, we've provided a template that you can use to help create your
own.
| Available in: All Salesforce Billing Editions |
1public with sharing class YourHttpService {
2 // ============================================================================
3 // CONSTANT
4 // ============================================================================
5
6 // ============================================================================
7 // STATIC VARIABLES
8 // ============================================================================
9
10 private static YourHttpService httpServiceInstance;
11
12 // ============================================================================
13 // VARIABLES
14 // ============================================================================
15
16 private HttpResponse httpResponse;
17 private Map<String,String> mapOfHeaderParameter = new Map<String,String>();
18 private enum Method {GET, POST}
19
20 /**
21 * @name getInstance
22 * @description get an Instance of Service class
23 * @params NA
24 * @return Http Service Class Instance
25 * @remark
26 * @change
27 */
28 public static YourHttpService getInstance()
29 {
30 if (NULL == httpServiceInstance)
31 {
32 httpServiceInstance = new YourHttpService();
33 }
34 return httpServiceInstance;
35 }
36
37 /**
38 * @name get
39 * @description Get Method to get a HTTP request
40 * @param endPoint
41 * @return
42 * @remark
43 * @change
44 */
45 public void get(String endPoint)
46 {
47 send(newRequest(Method.GET, endPoint));
48 }
49
50 /**
51 * @name post
52 * @description Post Method to Post a HTTP request
53 * @param endPoint and requestBody
54 * @return
55 * @exception
56 * @remark
57 * @change
58 */
59 public void post(String endPoint, String requestBody)
60 {
61 send(newRequest(Method.POST, endPoint, requestBody));
62 }
63
64 /**
65 * @name addHeader
66 * @description addHeader Methods to add all the defualt Header's required fo rthe request
67 * @param name and value
68 * @return
69 * @exception
70 * @remark
71 * @change
72 */
73 public void addHeader(String name, String value)
74 {
75 mapOfHeaderParameter.put(name, value);
76 }
77
78 /**
79 * @name setHeader
80 * @description setHeader Methods to set setHeader for the request
81 * @param request
82 * @return
83 */
84 private void setHeader(HttpRequest request)
85 {
86 for(String headerValue : mapOfHeaderParameter.keySet())
87 {
88 request.setHeader(headerValue, mapOfHeaderParameter.get(headerValue));
89 }
90 }
91
92 /**
93 * @name setAuthorizationHeader
94 * @description setAuthorizationHeader Methods to set Authorization Header for the request
95 * @param userName and password
96 * @return
97 */
98 public void setAuthorizationHeader(String userName,String password)
99 {
100 if(String.isNotBlank(userName) && String.isNotBlank(password))
101 {
102 Blob headerValue = blob.valueOf(userName + ':' + password);
103 String authorizationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue);
104 addHeader('Authorization', authorizationHeader);
105 }
106 }
107
108 /**
109 * @name setTokenisationHeader
110 * @description setTokenisationHeader Methods to set Tokenisation Header for the request
111 * @param userName and password
112 * @return
113 */
114 public void setTokenisationHeader(String userName,String password)
115 {
116 if(String.isNotBlank(userName) && String.isNotBlank(password))
117 {
118 Blob headerValue = blob.valueOf(userName + ':' + password);
119 String tokenisationHeader = 'Basic ' + EncodingUtil.base64Encode(headerValue);
120 addHeader('Tokenisation', tokenisationHeader);
121 }
122 }
123
124 /**
125 * @name newRequest
126 * @description newRequest Methods to make a new request
127 * @param method and endPoint
128 * @return newRequest
129 * @exception
130 */
131 private HttpRequest newRequest(Method method, String endPoint)
132 {
133 return newRequest(method, endPoint, NULL);
134 }
135
136 /**
137 * @name newRequest
138 * @description newRequest Methods to make a new request
139 * @param method, endPoint and requestBody
140 * @return request
141 * @exception
142 */
143 private HttpRequest newRequest(Method method, String endPoint, String requestBody)
144 {
145 HttpRequest request = new HttpRequest();
146 request.setMethod(Method.name());
147 setHeader(request);
148 request.setEndpoint(endPoint);
149 if (String.isNotBlank(requestBody))
150 {
151 request.setBody(requestBody);
152 }
153 request.setTimeout(120000);
154 return request;
155 }
156
157 /**
158 * @name send
159 * @description send Methods to send a request
160 * @param request
161 * @return
162 * @exception Throws Exception
163 */
164 private void send(HttpRequest request)
165 {
166 try
167 {
168 httpResponse = new Http().send(request);
169 }
170 catch(Exception e)
171 {
172 throw e;
173 }
174 }
175
176 /**
177 * @name getResponse
178 * @description getResponse Method to get the Response
179 * @param NA
180 * @return httpResponse
181 * @exception
182 */
183 public HttpResponse getResponse()
184 {
185 return httpResponse;
186 }
187
188 /**
189 * @name getResponseToString
190 * @description getResponse Method to get the Response
191 * @param NA
192 * @return getResponse
193 * @exception
194 */
195 public String getResponseToString()
196 {
197 return getResponse().toString();
198 }
199
200}