2010-02-07 4 views
2

Je crée une activité qui doit télécharger une image vers un service web en utilisant leur API.Comment envoyer une image via HTTPPost?

J'ai trouvé que si j'utilise UrlEncodedFormEntity et envoie les données d'image à travers cela. le webservice ne le reçoit pas. (En fait, si j'ajoute des variables à envoyer avec les données d'image (comme le nom du fichier, la taille du fichier), elles peuvent être lues à partir du service Web, mais les données d'image ne peuvent pas être lues. (

) n'apparaît toujours pas si j'essaye de le lire sur le serveur.

En ce moment j'utilise UrlEncodedFormEntity avec BasicNameValuePair comme conteneur pour mes données.

Répondre

2

Peut-être que cela vous aidera. J'ai utilisé la même fonctionnalité, mais le service Web a été développé par moi. J'ai après l'image en utilisant les éléments suivants:

  1. je reçois l'icône Bitmap particulier et la compriment dans le tableau d'octets comme ceci:

    ByteArrayOutputStream out = new ByteArrayOutputStream(10240); 
    icon.compress(CompressFormat.PNG, 100, out); 
    
  2. Ensuite, créez HttpPost et définir l'entité.

    httpPostInstance.setEntity(new ByteArrayEntity(out.toByteArray())); 
    
  3. Vérifiez l'en-tête "Content-type". Vous devez correctement le définir à tout ce que votre service attend.