Skip to content

Commit 7cfe8d7

Browse files
committed
Cleanup of http methods
1 parent cf65136 commit 7cfe8d7

File tree

1 file changed

+92
-43
lines changed

1 file changed

+92
-43
lines changed

src/com/loopj/android/http/AsyncHttpClient.java

Lines changed: 92 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,11 @@
4141
import org.apache.http.client.CookieStore;
4242
import org.apache.http.client.methods.HttpGet;
4343
import org.apache.http.client.methods.HttpPost;
44+
import org.apache.http.client.methods.HttpPut;
45+
import org.apache.http.client.methods.HttpDelete;
4446
import org.apache.http.client.methods.HttpRequestBase;
4547
import org.apache.http.client.methods.HttpUriRequest;
48+
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
4649
import org.apache.http.client.protocol.ClientContext;
4750
import org.apache.http.conn.params.ConnManagerParams;
4851
import org.apache.http.conn.params.ConnPerRouteBean;
@@ -136,80 +139,99 @@ public void setThreadPool(ThreadPoolExecutor threadPool) {
136139
this.threadPool = threadPool;
137140
}
138141

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);
141153
}
142154

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);
145159
}
146160

147161
public void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
148162
get(null, url, params, responseHandler);
149163
}
150164

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+
}
157168

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);
160171
}
161172

173+
174+
// Http POST Requests
162175
public void post(String url, AsyncHttpResponseHandler responseHandler) {
163176
post(null, url, null, responseHandler);
164177
}
165178

179+
public void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler) {
180+
post(null, url, params, responseHandler);
181+
}
182+
166183
public void post(Context context, String url, AsyncHttpResponseHandler responseHandler) {
167184
post(context, url, null, responseHandler);
168185
}
169186

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);
172193
}
173194

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-
}
179195

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);
181199
}
182200

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+
}
186204

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+
}
190208

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+
}
194212

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);
197215
}
198216

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);
210226
}
211227

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+
213235
Future request = threadPool.submit(new AsyncHttpRequest(client, httpContext, uriRequest, responseHandler));
214236

215237
if(context != null) {
@@ -226,6 +248,33 @@ private void sendRequest(DefaultHttpClient client, HttpContext httpContext, Http
226248
}
227249
}
228250

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+
229278
private static class InflatingEntity extends HttpEntityWrapper {
230279
public InflatingEntity(HttpEntity wrapped) {
231280
super(wrapped);

0 commit comments

Comments
 (0)