2010-06-28 6 views
1

Je dois envoyer une photo à partir d'un fichier stocké dans la carte SD à un Api externe. Pour ce faire, je suis en utilisant le code suivant:Android envoyer une photo en utilisant HttpPost/HttpGet

String responseStr = null; 
    this.setMethod(request); 
    this.setParameters(tags, parameters, optional); 
    String requested = mUri.build().toString(); 
    HttpHost host = new HttpHost(API_REST_HOST, -1, 
      HttpHost.DEFAULT_SCHEME_NAME); 
    Log.d(TAG, requested);  
    try { 
     HttpPost post = new HttpPost(requested); 
     File file = new File(filepath); 
     FileEntity fileentity; 
     if (filepath.substring(filepath.length()-3, filepath.length 
       ()).equalsIgnoreCase("jpg")) { 

      fileentity = new FileEntity(file,"image/jpeg;"); 
      fileentity.setChunked(true); 
      post.setEntity(fileentity); 
     } 
     post.addHeader("Content-Type", "image/jpeg;"); 
     HttpResponse response = mClient.execute(host,post); 

« setMethod » et « setParameters » sont propres méthodes afin de construire l'objet Uri. L'API externe prend bien les paramètres mais pas la photo. Il attend la photo dans un champ HttpBody.

Une idée? Merci

Merci

+0

Vous envoyez le JPEG dans le corps, mais le serveur dit qu'il ne voit pas le JPEG dans le corps? –

+0

Le serveur prend l'image en utilisant php de cette manière if ($ im_s = file_get_contents ('php: // input')) { – xger86x

Répondre

4

Le problème peut être le point-virgule dans le type de contenu:

fileentity = new FileEntity(file,"image/jpeg;"); 
              ^
Questions connexes