Added DELETE request [android-volley]

This commit is contained in:
Shyri Villar
2015-12-15 08:29:21 +01:00
parent a68ecf7809
commit cb9e4bf961
3 changed files with 101 additions and 1 deletions

View File

@@ -254,6 +254,8 @@ public class AndroidVolleyClientCodegen extends DefaultCodegen implements Codege
(sourceFolder + File.separator + requestPackage).replace(".", java.io.File.separator), "PostRequest.java"));
supportingFiles.add(new SupportingFile("request/putrequest.mustache",
(sourceFolder + File.separator + requestPackage).replace(".", java.io.File.separator), "PutRequest.java"));
supportingFiles.add(new SupportingFile("request/deleterequest.mustache",
(sourceFolder + File.separator + requestPackage).replace(".", java.io.File.separator), "DeleteRequest.java"));
supportingFiles.add(new SupportingFile("auth/apikeyauth.mustache",
(sourceFolder + File.separator + authPackage).replace(".", java.io.File.separator), "ApiKeyAuth.java"));
supportingFiles.add(new SupportingFile("auth/authentication.mustache",

View File

@@ -27,6 +27,8 @@ import {{invokerPackage}}.auth.Authentication;
import {{invokerPackage}}.auth.ApiKeyAuth;
import {{invokerPackage}}.request.GetRequest;
import {{invokerPackage}}.request.PostRequest;
import {{invokerPackage}}.request.PutRequest;
import {{invokerPackage}}.request.DeleteRequest;
public class ApiInvoker {
private static ApiInvoker INSTANCE;
@@ -374,7 +376,17 @@ public class ApiInvoker {
if(request != null) mRequestQueue.add(request);
}
else if ("DELETE".equals(method)) {
DeleteRequest request = null;
if (formParamStr != null) {
request = new PutRequest(url, headers, contentType, new StringEntity(formParamStr, "UTF-8"), stringRequest, errorListener);
} else if (body != null) {
if (body instanceof HttpEntity) {
request = new PutRequest(url, headers, null, (HttpEntity) body, stringRequest, errorListener);
} else {
request = new PutRequest(url, headers, contentType, new StringEntity(serialize(body), "UTF-8"), stringRequest, errorListener);
}
}
if(request != null) mRequestQueue.add(request);
}
else if ("PATCH".equals(method)) {

View File

@@ -0,0 +1,86 @@
package {{invokerPackage}}.request;
import com.android.volley.AuthFailureError;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyLog;
import com.android.volley.toolbox.HttpHeaderParser;
import org.apache.http.HttpEntity;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class DeleteRequest extends Request<String> {
HttpEntity entity;
private final Response.Listener<String> mListener;
String contentType;
Map<String, String> apiHeaders;
public DeleteRequest(String url, Map<String, String> apiHeaders, String contentType, HttpEntity entity, Response.Listener<String> listener, Response.ErrorListener errorListener) {
super(Method.DELETE, url, errorListener);
mListener = listener;
this.entity = entity;
this.contentType = contentType;
this.apiHeaders = apiHeaders;
}
@Override
public String getBodyContentType() {
return entity.getContentType().getValue();
}
@Override
public byte[] getBody() throws AuthFailureError {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
entity.writeTo(bos);
}
catch (IOException e) {
VolleyLog.e("IOException writing to ByteArrayOutputStream");
}
return bos.toByteArray();
}
@Override
protected Response<String> parseNetworkResponse(NetworkResponse response) {
String parsed;
try {
parsed = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
} catch (UnsupportedEncodingException e) {
parsed = new String(response.data);
}
return Response.success(parsed, HttpHeaderParser.parseCacheHeaders(response));
}
@Override
protected void deliverResponse(String response) {
mListener.onResponse(response);
}
/* (non-Javadoc)
* @see com.android.volley.Request#getHeaders()
*/
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = super.getHeaders();
if (headers == null || headers.equals(Collections.emptyMap())) {
headers = new HashMap<String, String>();
}
if (apiHeaders != null && !apiHeaders.equals(Collections.emptyMap())) {
headers.putAll(apiHeaders);
}
if(contentType != null) {
headers.put("Content-Type", contentType);
}
return headers;
}
}