File tree Expand file tree Collapse file tree 4 files changed +42
-1
lines changed
src/main/java/org/javawebstack/httpclient Expand file tree Collapse file tree 4 files changed +42
-1
lines changed Original file line number Diff line number Diff line change 33import com .google .gson .FieldNamingPolicy ;
44import com .google .gson .Gson ;
55import com .google .gson .GsonBuilder ;
6+ import org .javawebstack .httpclient .interfaces .BeforeRequest ;
67
78import java .util .HashMap ;
89import 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 }
Original file line number Diff line number Diff line change 11package org .javawebstack .httpclient ;
22
3+ import org .javawebstack .httpclient .interfaces .ResponseTransformer ;
34import org .javawebstack .querystring .QueryString ;
45
56import 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}
Original file line number Diff line number Diff line change 1+ package org .javawebstack .httpclient .interfaces ;
2+
3+ import org .javawebstack .httpclient .HTTPRequest ;
4+
5+ public interface BeforeRequest {
6+ void doBefore (HTTPRequest request );
7+ }
Original file line number Diff line number Diff line change 1+ package org .javawebstack .httpclient .interfaces ;
2+
3+ import org .javawebstack .httpclient .HTTPRequest ;
4+
5+ public interface ResponseTransformer {
6+ Object transform (HTTPRequest request );
7+ }
You can’t perform that action at this time.
0 commit comments