Android Téléchargement de Fichiers à l'Aide de HTTP PUT
J'ai un service web qui me demande d'envoyer un fichier de données à l'url HTTP avec METTRE de la demande. Je sais comment faire mais dans Android je ne sais pas.
L'API docs donne un exemple de demande.
PUT /images/upload/image_title HTTP/1.1
Host: some.domain.com
Date: Thu, 17 Jul 2008 14:56:34 GMT
X-SE-Client: test-account
X-SE-Accept: xml
X-SE-Auth: 90a6d325e982f764f86a7e248edf6a660d4ee833
bytes data goes here
J'ai écrit un code mais il me donne l'erreur.
HttpClient httpclient = new DefaultHttpClient();
HttpPut request = new HttpPut(Host + "images/upload/" + Name + "/");
request.addHeader("Date", now);
request.addHeader("X-SE-Client", X_SE_Client);
request.addHeader("X-SE-Accept", X_SE_Accept);
request.addHeader("X-SE-Auth", Token);
request.addHeader("X-SE-User", X_SE_User);
//I feel here is something wrong
File f = new File(Path);
MultipartEntity entity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE);
entity.addPart("photo", new FileBody(f));
request.setEntity(entity);
HttpResponse response = httpclient.execute(request);
HttpEntity resEntityGet = response.getEntity();
String res = EntityUtils.toString(resEntityGet);
Il ya quelque chose de mal, je suis en train de faire?
OriginalL'auteur Neutralizer | 2011-08-23
Vous devez vous connecter pour publier un commentaire.
essayer quelque chose de semblable à
MODIFIER - une autre et meilleure option:
En utilisant le haut-
HttpPut
est recommandé d'exemples, voir http://massapi.com/class/org/apache/http/client/methods/HttpPut.java.htmlEDIT 2 - comme demandé par commentaire:
Utilisation
setEntity
méthode avec par exemplenew FileEntity(new File(Path), "binary/octet-stream");
comme param avant d'appelerexecute
pour ajouter un fichier à la demande.voir mon EDIT 2 - en principe oui, vous devez utiliser
setEntity
pour que...Il a travaillé! (un putain de limite)
votre première modification est la meilleure solution que j'ai trouvé jusqu'à présent.
comment ajouter l'en-tête de la méthode put?
OriginalL'auteur Yahia
Le code suivant fonctionne très bien pour moi:
mais c'est malheureusement MIS
Si vous souhaitez changer HttpPost dans l'exemple de HttpPut il devrait fonctionner aussi bien.
l'apache client est obsolète maintenant sur Android
OriginalL'auteur Eric C