Created
April 24, 2012 20:06
-
-
Save marekkirejczyk/2483263 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.io.BufferedInputStream; | |
import java.io.DataOutputStream; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.net.HttpURLConnection; | |
import java.net.URL; | |
import java.util.ArrayList; | |
import java.util.List; | |
import android.graphics.Bitmap; | |
public class MultipartUploader { | |
private final static String LINE_END = "\r\n"; | |
private final static String TWO_HYPENS = "--"; | |
private final static String BOUNDARY = "*****"; | |
private HttpURLConnection connection = null; | |
private DataOutputStream outputStream = null; | |
private List<String> cookies = new ArrayList<String>(); | |
public void start(String urlServer) throws IOException { | |
URL url = new URL(urlServer); | |
connection = (HttpURLConnection) url.openConnection(); | |
connection.setDoInput(true); | |
connection.setDoOutput(true); | |
connection.setUseCaches(false); | |
connection.setRequestMethod("POST"); | |
connection.setRequestProperty("Connection", "Keep-Alive"); | |
connection.setRequestProperty("Content-Type", | |
"multipart/form-data;boundary=" + BOUNDARY); | |
for (String cookie : cookies) | |
connection.addRequestProperty("Cookie", cookie.split(";", 2)[0]); | |
outputStream = new DataOutputStream(connection.getOutputStream()); | |
} | |
public String finish() throws IOException { | |
outputStream.flush(); | |
outputStream.close(); | |
cookies = connection.getHeaderFields().get("Set-Cookie"); | |
InputStream in = new BufferedInputStream(connection.getInputStream()); | |
return StreamUtils.toString(in); | |
} | |
public void bitmap(String name, Bitmap bitmap) throws IOException { | |
outputStream.writeBytes(TWO_HYPENS + BOUNDARY + LINE_END); | |
outputStream | |
.writeBytes("Content-Disposition: attachment; name=\"userfile\";filename=\"" | |
+ name + "\""); | |
outputStream.writeBytes(LINE_END + LINE_END); | |
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outputStream); | |
outputStream.writeBytes(LINE_END); | |
outputStream.writeBytes(TWO_HYPENS + BOUNDARY + TWO_HYPENS + LINE_END); | |
} | |
public void string(String name, String value) throws IOException { | |
outputStream.writeBytes(TWO_HYPENS + BOUNDARY + LINE_END); | |
outputStream.writeBytes("Content-Disposition: form-data; name=\"" | |
+ name + "\"" + LINE_END + LINE_END); | |
outputStream.writeBytes(value + LINE_END); | |
outputStream.writeBytes(TWO_HYPENS + BOUNDARY + LINE_END); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment