Comment envoyer un grand paramètre de post (> 5 Mo) (entre autres paramètres de poste) dans Android?Envoyer un grand message param dans Android
J'utilise actuellement org.apache.http.client.methods.HttpPost
et une liste de BasicNameValuePair
pour envoyer les post-params.
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(someURL);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("param1", "value1"));
nameValuePairs.add(new BasicNameValuePair("param2", hugeValue));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httpclient.execute(httppost);
hugeValue
est une chaîne très importante que je voudrais lire un InputStream
et envoyer comme je l'ai lu. Comment puis-je faire ceci?
Vous aurez probablement à court de RAM aller dans cette voie, en particulier sur les petits téléphones. Vous devrez peut-être utiliser le contenu 'HttpUrlConnection' de niveau inférieur du paquet' java.net'. – CommonsWare
C'est exactement le problème. Je manque de RAM. – hpique
Si vous contrôlez le côté serveur, vous pouvez écrire votre chaîne à stream, gzip (java.util.zip) et upload en binaire. Certaines bibliothèques externes comme apache.mime et commons.io seraient utiles. –