Sending images can be done using the
HttpComponents libraries
. Download the latest HttpClient (currently
4.0.1
) binary with dependencies package and copy
and
to your project and add them to your Java build path.
apache-mime4j-0.6.jar
httpmime-4.0.1.jar
You will need to add the following imports to your class.
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
Now you can create a MultipartEntity
- public
void post(String url, List nameValuePairs) { -
HttpClient httpClient = new DefaultHttpClient(); -
HttpContext localContext = new BasicHttpContext(); -
HttpPost httpPost = new HttpPost(url); -
-
try { -
MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); -
-
for(int index=0; index < nameValuePairs.size(); index++) { -
if(nameValuePairs.get(index).getName().equalsIgnoreCase("image")) { -
// If the key equals to "image", we use FileBody to transfer the data -
entity.addPart(nameValuePairs.get(index).getName(), new FileBody(new File (nameValuePairs.get(index).getValue()))); -
} else { -
// Normal string data -
entity.addPart(nameValuePairs.get(index).getName(), new StringBody(nameValuePairs.get(index).getValue())); -
} -
} -
-
httpPost.setEntity(entity); -
-
HttpResponse response = httpClient.execute(httpPost, localContext); -
} catch (IOException e) { -
e.printStackTrace(); -
} - }