J'ai un webservice Grails qui prend un fichier binaire en paramètre. Ceci est essentiellement à quoi il ressemble:Comment appeler grails webservice à partir de C#
def index = {
switch(request.method){
case "POST":
def uploadedFile = request.getFile('file')
File f=new File('c:/dev/newfile.tar');
uploadedFile.transferTo(f);
//do something with f
break
}
}
Pour tester cela, j'utilisais boucle - comme ceci:
curl -F [email protected] http://localhost:8080/MyWebS/fileWS
La clé étant que pour Grails de savoir comment obtenir le fichier, j'ai dû définir ce fichier = thefile dans la commande curl.
Comment cela se traduit-il par le fait que C# appelle ce même service Web et lui transmet un fichier. A quoi ressemblerait le fichier? un tableau d'octets?
WebClient * fait * multipart/form-data! Incroyable. Je n'étais pas au courant. – dtb
Exactement ce que je cherchais! Merci! – Derek
@Derek, heureux d'aider! @dtb, je ne me suis pas rendu compte qu'il attendrait une charge utile RFC2388 (euh, en fait, je ne savais pas ce que c'était avant de lire votre message supprimé); D'autres lectures suggèrent que 'WebClient.UploadFile' suit une spécification antérieure sur laquelle repose 2388 (RFC1867). C'est peut-être compatible, mais je ne suis pas sûr à 100% de l'entreprise multipart/form-data. ;) (Bien que le HttpWebRequest fasse sûrement l'affaire si la façade de UploadFile échoue.) –