41
41
import org .apache .http .client .CookieStore ;
42
42
import org .apache .http .client .methods .HttpGet ;
43
43
import org .apache .http .client .methods .HttpPost ;
44
+ import org .apache .http .client .methods .HttpPut ;
45
+ import org .apache .http .client .methods .HttpDelete ;
44
46
import org .apache .http .client .methods .HttpRequestBase ;
45
47
import org .apache .http .client .methods .HttpUriRequest ;
48
+ import org .apache .http .client .methods .HttpEntityEnclosingRequestBase ;
46
49
import org .apache .http .client .protocol .ClientContext ;
47
50
import org .apache .http .conn .params .ConnManagerParams ;
48
51
import org .apache .http .conn .params .ConnPerRouteBean ;
@@ -136,80 +139,99 @@ public void setThreadPool(ThreadPoolExecutor threadPool) {
136
139
this .threadPool = threadPool ;
137
140
}
138
141
139
- public void get (String url , AsyncHttpResponseHandler responseHandler ) {
140
- get (null , url , null , responseHandler );
142
+ public void cancelRequests (Context context , boolean mayInterruptIfRunning ) {
143
+ List <WeakReference <Future >> requestList = requestMap .get (context );
144
+ if (requestList != null ) {
145
+ for (WeakReference <Future > requestRef : requestList ) {
146
+ Future request = requestRef .get ();
147
+ if (request != null ) {
148
+ request .cancel (mayInterruptIfRunning );
149
+ }
150
+ }
151
+ }
152
+ requestMap .remove (context );
141
153
}
142
154
143
- public void get (Context context , String url , AsyncHttpResponseHandler responseHandler ) {
144
- get (context , url , null , responseHandler );
155
+
156
+ // Http GET Requests
157
+ public void get (String url , AsyncHttpResponseHandler responseHandler ) {
158
+ get (null , url , null , responseHandler );
145
159
}
146
160
147
161
public void get (String url , RequestParams params , AsyncHttpResponseHandler responseHandler ) {
148
162
get (null , url , params , responseHandler );
149
163
}
150
164
151
- public void get (Context context , String url , RequestParams params , AsyncHttpResponseHandler responseHandler ) {
152
- // Build and append query string (utf8 url encoded)
153
- if (params != null ) {
154
- String paramString = params .getParamString ();
155
- url += "?" + paramString ;
156
- }
165
+ public void get (Context context , String url , AsyncHttpResponseHandler responseHandler ) {
166
+ get (context , url , null , responseHandler );
167
+ }
157
168
158
- // Fire up the request in a new thread
159
- sendRequest (httpClient , httpContext , new HttpGet (url ) , responseHandler , context );
169
+ public void get ( Context context , String url , RequestParams params , AsyncHttpResponseHandler responseHandler ) {
170
+ sendRequest (httpClient , httpContext , new HttpGet (getUrlWithQueryString ( url , params )), null , responseHandler , context );
160
171
}
161
172
173
+
174
+ // Http POST Requests
162
175
public void post (String url , AsyncHttpResponseHandler responseHandler ) {
163
176
post (null , url , null , responseHandler );
164
177
}
165
178
179
+ public void post (String url , RequestParams params , AsyncHttpResponseHandler responseHandler ) {
180
+ post (null , url , params , responseHandler );
181
+ }
182
+
166
183
public void post (Context context , String url , AsyncHttpResponseHandler responseHandler ) {
167
184
post (context , url , null , responseHandler );
168
185
}
169
186
170
- public void post (String url , RequestParams params , AsyncHttpResponseHandler responseHandler ) {
171
- post (null , url , params , responseHandler );
187
+ public void post (Context context , String url , RequestParams params , AsyncHttpResponseHandler responseHandler ) {
188
+ post (context , url , paramsToEntity (params ), null , responseHandler );
189
+ }
190
+
191
+ public void post (Context context , String url , HttpEntity entity , String contentType , AsyncHttpResponseHandler responseHandler ) {
192
+ sendRequest (httpClient , httpContext , addEntityToRequestBase (new HttpPost (url ), entity ), contentType , responseHandler , context );
172
193
}
173
194
174
- public void post (Context context , String url , RequestParams params , AsyncHttpResponseHandler responseHandler ) {
175
- HttpEntity entity = null ;
176
- if (params != null ) {
177
- entity = params .getEntity ();
178
- }
179
195
180
- post (context , url , entity , null , responseHandler );
196
+ // Http PUT Requests
197
+ public void put (String url , AsyncHttpResponseHandler responseHandler ) {
198
+ put (null , url , null , responseHandler );
181
199
}
182
200
183
- public void post ( Context context , String url , HttpEntity entity , String contentType , AsyncHttpResponseHandler responseHandler ) {
184
- // Build post object with params
185
- final HttpPost post = new HttpPost ( url );
201
+ public void put ( String url , RequestParams params , AsyncHttpResponseHandler responseHandler ) {
202
+ put ( null , params , responseHandler );
203
+ }
186
204
187
- if ( entity != null ) {
188
- post . setEntity ( entity );
189
- }
205
+ public void put ( Context context , String url , AsyncHttpResponseHandler responseHandler ) {
206
+ put ( context , url , null , responseHandler );
207
+ }
190
208
191
- if ( contentType != null ) {
192
- post . addHeader ( "Content-Type" , contentType );
193
- }
209
+ public void put ( Context context , String url , RequestParams params , AsyncHttpResponseHandler responseHandler ) {
210
+ put ( context , url , paramsToEntity ( params ), null , responseHandler );
211
+ }
194
212
195
- // Fire up the request in a new thread
196
- sendRequest (httpClient , httpContext , post , responseHandler , context );
213
+ public void put ( Context context , String url , HttpEntity entity , String contentType , AsyncHttpResponseHandler responseHandler ) {
214
+ sendRequest (httpClient , httpContext , addEntityToRequestBase ( new HttpPut ( url ), entity ), contentType , responseHandler , context );
197
215
}
198
216
199
- public void cancelRequests (Context context , boolean mayInterruptIfRunning ) {
200
- List <WeakReference <Future >> requestList = requestMap .get (context );
201
- if (requestList != null ) {
202
- for (WeakReference <Future > requestRef : requestList ) {
203
- Future request = requestRef .get ();
204
- if (request != null ) {
205
- request .cancel (mayInterruptIfRunning );
206
- }
207
- }
208
- }
209
- requestMap .remove (context );
217
+
218
+ // Http DELETE Requests
219
+ public void delete (String url , AsyncHttpResponseHandler responseHandler ) {
220
+ delete (null , url , responseHandler );
221
+ }
222
+
223
+ public void delete (Context context , String url , AsyncHttpResponseHandler responseHandler ) {
224
+ final HttpDelete delete = new HttpDelete (url );
225
+ sendRequest (httpClient , httpContext , delete , null , responseHandler , context );
210
226
}
211
227
212
- private void sendRequest (DefaultHttpClient client , HttpContext httpContext , HttpUriRequest uriRequest , AsyncHttpResponseHandler responseHandler , Context context ) {
228
+
229
+ // Private stuf
230
+ private void sendRequest (DefaultHttpClient client , HttpContext httpContext , HttpUriRequest uriRequest , String contentType , AsyncHttpResponseHandler responseHandler , Context context ) {
231
+ if (contentType != null ) {
232
+ uriRequest .addHeader ("Content-Type" , contentType );
233
+ }
234
+
213
235
Future request = threadPool .submit (new AsyncHttpRequest (client , httpContext , uriRequest , responseHandler ));
214
236
215
237
if (context != null ) {
@@ -226,6 +248,33 @@ private void sendRequest(DefaultHttpClient client, HttpContext httpContext, Http
226
248
}
227
249
}
228
250
251
+ private String getUrlWithQueryString (String url , RequestParams params ) {
252
+ if (params != null ) {
253
+ String paramString = params .getParamString ();
254
+ url += "?" + paramString ;
255
+ }
256
+
257
+ return url ;
258
+ }
259
+
260
+ private HttpEntity paramsToEntity (RequestParams params ) {
261
+ HttpEntity entity = null ;
262
+
263
+ if (params != null ) {
264
+ entity = params .getEntity ();
265
+ }
266
+
267
+ return entity ;
268
+ }
269
+
270
+ private HttpEntityEnclosingRequestBase addEntityToRequestBase (HttpEntityEnclosingRequestBase requestBase , HttpEntity entity ) {
271
+ if (entity != null ){
272
+ requestBase .setEntity (entity );
273
+ }
274
+
275
+ return requestBase ;
276
+ }
277
+
229
278
private static class InflatingEntity extends HttpEntityWrapper {
230
279
public InflatingEntity (HttpEntity wrapped ) {
231
280
super (wrapped );
0 commit comments