envoi de photo à  un WS

guittonewsguittonews Membre
avril 2009 modifié dans API UIKit #1
bonjour à  tous ,
comme dit dans le titre j'aimerai envoyer une photo à  un WS (sur lequel j'ai la main).

Et autant je voyais pas trop mal comment envoyer du xml, autant la pour envoyer une image (UIImagePNGRepresentation) je bloque un peu...

EDIT : pas très clair comme message...en fait ce qui me gene le plus c'est que je ne vois pas trop quoi passé au body pour avoir un couple clé valeur (genre photo/monImage). Autrement dit quel parametre passer à  setHTTPBody?


Des liens? idées? conseil?

Merci beaucoup :)

Réponses

  • AliGatorAliGator Membre, Modérateur
    12:48 modifié #2
    Hello,

    Alors :
    1) Il y a déjà  un sujet sur les forums qui traà®naient pour envoyer des images à  un WS via SOAP. Fais une recherche, à  mon avis tu y trouveras pas mal d'éléments de réponse

    2) Sinon grosso modo :
    2.1) d'une il faut que tu lises la doc de ton WebService pour savoir ce qu'il attend, s'il y a un format d'image imposé par exemple (uniquement du PNG ? ou du JPEG aussi ? ...)
    2.2) une fois que tu sais ça, le principe en général (mais si la doc du WS est bien faite, ça aussi ils le détaillent) c'est d'envoyer les données biaires de l'image, encodées en Base64.
    Si tu utilises le framework WS d'Apple pour envoyer tes données, l'encodage en Base64 est fait automatiquement... Mais sur iPhone malheureusement, ce framework n'est pas disponible, donc il faut que tu fasses ton XML toi-même à  la main (ou que tu passes par un framework récupéré sur le net il doit bien en exister).

    Si tu fais ça toi-même du coup, le principe est de demander les NSData de ta PNGRepresentation (ou de ta TIFFRepresentation, etc. selon le format accepté par ton WS), et une fois que tu as ce NSData, encoder ce dernier en base64, et l'encapsuler dans la bonne balise SOAP (on en parle sur l'autre sujet que j'évoque en (1).
    Pour encoder une chaà®ne en base64, le plus simple est d'utiliser openssl, y'a des bouts de code en Objective-C tout faits et même des catégories à  NSData et NSString qui te permettent de faire des trucs comme [tt][myString encodeBase64][/tt] comme si c'était une méthode native...


    Je te laisse rechercher sur osx-dev tu devrais avoir toutes les infos.
  • guittonewsguittonews Membre
    12:48 modifié #3
    merci beaucoup pour le coup de main :) , j'en demandais pas plus :)

    j'étais très loin du compte lol

    allé au boulot, encore merci ali ;)
  • guittonewsguittonews Membre
    12:48 modifié #4
    j'ai trouver ca qui pourra ptet e naider certain (dont moi surement :D).

    http://lingonikorgsource.wordpress.com/2008/11/28/olbtwitpicengine-twitter-image-uploading-code/
Connectez-vous ou Inscrivez-vous pour répondre.