diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidVolleyClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidVolleyClientCodegen.java index 1ea9da0898b..3b546913554 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidVolleyClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AndroidVolleyClientCodegen.java @@ -247,6 +247,8 @@ public class AndroidVolleyClientCodegen extends DefaultCodegen implements Codege (sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "Pair.java")); supportingFiles.add(new SupportingFile("getrequest.mustache", (sourceFolder + File.separator + requestPackage).replace(".", java.io.File.separator), "GetRequest.java")); + supportingFiles.add(new SupportingFile("postrequest.mustache", + (sourceFolder + File.separator + requestPackage).replace(".", java.io.File.separator), "PostRequest.java")); } public Boolean getUseAndroidMavenGradlePlugin() { diff --git a/modules/swagger-codegen/src/main/resources/android-volley/postrequest.mustache b/modules/swagger-codegen/src/main/resources/android-volley/postrequest.mustache new file mode 100644 index 00000000000..7daf8360753 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/android-volley/postrequest.mustache @@ -0,0 +1,78 @@ +package {{invokerPackage}}; + +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 org.apache.http.HttpEntity; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + +public class PostRequest extends Request { + + HttpEntity entity; + + private final Response.Listener mListener; + + String contentType; + Map apiHeaders; + public PostRequest(String url, Map apiHeaders, String contentType, HttpEntity entity, Response.Listener listener, Response.ErrorListener errorListener) { + super(Method.POST, 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 parseNetworkResponse(NetworkResponse response) { + return Response.success("Uploaded", getCacheEntry()); + } + + @Override + protected void deliverResponse(String response) { + mListener.onResponse(response); + } + + /* (non-Javadoc) + * @see com.android.volley.Request#getHeaders() + */ + @Override + public Map getHeaders() throws AuthFailureError { + Map headers = super.getHeaders(); + if (headers == null || headers.equals(Collections.emptyMap())) { + headers = new HashMap(); + } + if (apiHeaders != null && !apiHeaders.equals(Collections.emptyMap())) { + headers.putAll(apiHeaders); + } + if(contentType != null) { + headers.put("Content-Type", contentType); + } + + return headers; + } +} \ No newline at end of file