android httpurlconnection post multipart/form-data
MultipartUtility multipart =newMultipartUtility(requestURL, charset);
// In your case you are not adding form data so ignore this/*This is to add parameter values */for (int i =0; i < myFormDataArray.size(); i++) {
multipart.addFormField(myFormDataArray.get(i).getParamName(),
myFormDataArray.get(i).getParamValue());
}
//add your file here./*This is to add file content*/for (int i =0; i < myFileArray.size(); i++) {
multipart.addFilePart(myFileArray.getParamName(),
newFile(myFileArray.getFileName()));
}
List<String> response = multipart.finish();
Debug.e(TAG, "SERVER REPLIED:");
for (String line : response) {
Debug.e(TAG, "Upload Files Response:::"+ line);
// get your server response here.
responseString = line;
}
android httpurlconnection post multipart/form-data
publicclassMultipartUtility {
private final String boundary;
privatestatic final StringLINE_FEED="\r\n";
private HttpURLConnection httpConn;
privateString charset;
private OutputStream outputStream;
private PrintWriter writer;
/**
* This constructor initializes a new HTTP POST request with content type
* is set to multipart/form-data
*
* @param requestURL
* @param charset
* @throws IOException
*/publicMultipartUtility(String requestURL, String charset)
throws IOException {
this.charset = charset;
// creates a unique boundary based on time stamp
boundary ="==="+ System.currentTimeMillis() +"===";
URL url =newURL(requestURL);
httpConn = (HttpURLConnection) url.openConnection();
httpConn.setUseCaches(false);
httpConn.setDoOutput(true); // indicates POST method
httpConn.setDoInput(true);
httpConn.setRequestProperty("Content-Type",
"multipart/form-data; boundary="+ boundary);
outputStream = httpConn.getOutputStream();
writer =newPrintWriter(newOutputStreamWriter(outputStream, charset),
true);
}
/**
* Adds a form field to the request
*
* @param name field name
* @param value field value
*/publicvoidaddFormField(String name, String value) {
writer.append("--"+ boundary).append(LINE_FEED);
writer.append("Content-Disposition: form-data; name=\""+ name +"\"")
.append(LINE_FEED);
writer.append("Content-Type: text/plain; charset="+ charset).append(
LINE_FEED);
writer.append(LINE_FEED);
writer.append(value).append(LINE_FEED);
writer.flush();
}
/**
* Adds a upload file section to the request
*
* @param fieldName name attribute in <input type="file" name="..." />
* @param uploadFile a File to be uploaded
* @throws IOException
*/publicvoidaddFilePart(String fieldName, File uploadFile)
throws IOException {
String fileName = uploadFile.getName();
writer.append("--"+ boundary).append(LINE_FEED);
writer.append(
"Content-Disposition: form-data; name=\""+ fieldName
+"\"; filename=\""+ fileName +"\"")
.append(LINE_FEED);
writer.append(
"Content-Type: "+ URLConnection.guessContentTypeFromName(fileName))
.append(LINE_FEED);
writer.append("Content-Transfer-Encoding: binary").append(LINE_FEED);
writer.append(LINE_FEED);
writer.flush();
FileInputStream inputStream =newFileInputStream(uploadFile);
byte[] buffer =new byte[4096];
int bytesRead =-1;
while ((bytesRead = inputStream.read(buffer)) !=-1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.flush();
inputStream.close();
writer.append(LINE_FEED);
writer.flush();
}
/**
* Adds a header field to the request.
*
* @param name - name of the header field
* @param value - value of the header field
*/publicvoidaddHeaderField(String name, String value) {
writer.append(name +": "+ value).append(LINE_FEED);
writer.flush();
}
/**
* Completes the request and receives response from the server.
*
* @return a list of Strings as response in case the server returned
* status OK, otherwise an exception is thrown.
* @throws IOException
*/public List<String>finish() throws IOException {
List<String> response =new ArrayList<String>();
writer.append(LINE_FEED).flush();
writer.append("--"+ boundary +"--").append(LINE_FEED);
writer.close();
// checks server's status code firstint status = httpConn.getResponseCode();
if (status == HttpURLConnection.HTTP_OK) {
BufferedReader reader =newBufferedReader(newInputStreamReader(
httpConn.getInputStream()));
String line =null;
while ((line = reader.readLine()) !=null) {
response.add(line);
}
reader.close();
httpConn.disconnect();
} else {
thrownewIOException("Server returned non-OK status: "+ status);
}
return response;
}
}
Forgot your account's password or having trouble logging into your Account? Don't worry, we'll help you to get back your account. Enter your email address and we'll send you a recovery link to reset your password. If you are experiencing problems
resetting your password contact us
Check Your Email and Click on the link sent to your email