Skip to content

Commit e86720e

Browse files
committed
Added before, transform and baseUrl in constructor
1 parent 46cdee7 commit e86720e

File tree

4 files changed

+42
-1
lines changed

4 files changed

+42
-1
lines changed

src/main/java/org/javawebstack/httpclient/HTTPClient.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.google.gson.FieldNamingPolicy;
44
import com.google.gson.Gson;
55
import com.google.gson.GsonBuilder;
6+
import org.javawebstack.httpclient.interfaces.BeforeRequest;
67

78
import java.util.HashMap;
89
import java.util.Map;
@@ -18,6 +19,14 @@ public class HTTPClient {
1819
private String baseUrl = "";
1920
private Map<String, String> defaultHeaders = new HashMap<>();
2021

22+
private BeforeRequest beforeInterceptor;
23+
24+
public HTTPClient(String baseUrl) {
25+
this.baseUrl = baseUrl;
26+
}
27+
28+
public HTTPClient() { }
29+
2130
public HTTPClient gson(Gson gson){
2231
this.gson = gson;
2332
return this;
@@ -77,6 +86,15 @@ public HTTPRequest get(String path){
7786
return request("GET", path);
7887
}
7988

89+
public HTTPClient before(BeforeRequest requestInterceptor){
90+
beforeInterceptor = requestInterceptor;
91+
return this;
92+
}
93+
94+
public BeforeRequest getBeforeInterceptor() {
95+
return beforeInterceptor;
96+
}
97+
8098
public HTTPRequest post(String path){
8199
return request("POST", path);
82100
}

src/main/java/org/javawebstack/httpclient/HTTPRequest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.javawebstack.httpclient;
22

3+
import org.javawebstack.httpclient.interfaces.ResponseTransformer;
34
import org.javawebstack.querystring.QueryString;
45

56
import java.io.ByteArrayOutputStream;
@@ -115,6 +116,10 @@ public String header(String key){
115116
return responseHeaders.get(key);
116117
}
117118

119+
public <T> T transform(ResponseTransformer responseTransformer, Class<T> type){
120+
return (T) responseTransformer.transform(this);
121+
}
122+
118123
public HTTPRequest execute(){
119124
HttpURLConnection conn = null;
120125
try{
@@ -127,6 +132,11 @@ public HTTPRequest execute(){
127132
for(String k : requestHeaders.keySet()){
128133
conn.setRequestProperty(k, requestHeaders.get(k));
129134
}
135+
136+
if (client.getBeforeInterceptor() != null)
137+
client.getBeforeInterceptor().doBefore(this);
138+
139+
130140
if(requestBody!=null){
131141
conn.setDoOutput(true);
132142
OutputStream os = conn.getOutputStream();
@@ -167,5 +177,4 @@ private static byte[] readAll(InputStream is) throws IOException {
167177
is.close();
168178
return baos.toByteArray();
169179
}
170-
171180
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.javawebstack.httpclient.interfaces;
2+
3+
import org.javawebstack.httpclient.HTTPRequest;
4+
5+
public interface BeforeRequest {
6+
void doBefore(HTTPRequest request);
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.javawebstack.httpclient.interfaces;
2+
3+
import org.javawebstack.httpclient.HTTPRequest;
4+
5+
public interface ResponseTransformer {
6+
Object transform(HTTPRequest request);
7+
}

0 commit comments

Comments
 (0)