Mise à jour le 29 avril 2014:
Ma réponse est une sorte de vieux maintenant, et je suppose que vous avez plutôt envie d'utiliser une sorte de haut niveau de la bibliothèque tels que la Rénovation.
Basé sur ce blog, je suis venu avec la solution suivante:
http://blog.tacticalnuclearstrike.com/2010/01/using-multipartentity-in-android-applications/
Vous devrez télécharger d'autres bibliothèques pour obtenir de l' MultipartEntity
de course!
1) Télécharger httpcomponents-client-4.1.zip à partir de http://james.apache.org/download.cgi#Apache_Mime4J et d'ajouter apache-mime4j-0.6.1.jar pour votre projet.
2) Télécharger httpcomponents-client-4.1-bin.zip à partir de http://hc.apache.org/downloads.cgi et d'ajouter httpclient-4.1.jar, httpcore-4.1.jar et httpmime-4.1.jar pour votre projet.
3) Utiliser l'exemple de code ci-dessous.
private DefaultHttpClient mHttpClient;
public ServerCommunication() {
HttpParams params = new BasicHttpParams();
params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
mHttpClient = new DefaultHttpClient(params);
}
public void uploadUserPhoto(File image) {
try {
HttpPost httppost = new HttpPost("some url");
MultipartEntity multipartEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addPart("Title", new StringBody("Title"));
multipartEntity.addPart("Nick", new StringBody("Nick"));
multipartEntity.addPart("Email", new StringBody("Email"));
multipartEntity.addPart("Description", new StringBody(Settings.SHARE.TEXT));
multipartEntity.addPart("Image", new FileBody(image));
httppost.setEntity(multipartEntity);
mHttpClient.execute(httppost, new PhotoUploadResponseHandler());
} catch (Exception e) {
Log.e(ServerCommunication.class.getName(), e.getLocalizedMessage(), e);
}
}
private class PhotoUploadResponseHandler implements ResponseHandler<Object> {
@Override
public Object handleResponse(HttpResponse response)
throws ClientProtocolException, IOException {
HttpEntity r_entity = response.getEntity();
String responseString = EntityUtils.toString(r_entity);
Log.d("UPLOAD", responseString);
return null;
}
}