J’ai besoin de télécharger un fichier ics sur une API REST. Le seul exemple donné est une commande curl.
La commande utilisée pour télécharger le fichier en utilisant curl ressemble à ceci:
curl --user {username}:{password} --upload-file /tmp/myappointments.ics http://localhost:7070/home/john.doe/calendar?fmt=ics
Comment puis-je faire cela en utilisant un HttpWebRequest en C #?
Notez également que je ne peux avoir que les ics en tant que chaîne (pas le fichier réel).
J’ai réussi à trouver une solution de travail. La bizarrerie était de définir la méthode sur la demande à PUT au lieu de POST. Voici un exemple du code que j’ai utilisé:
var strICS = "text file content"; byte[] data = Encoding.UTF8.GetBytes (strICS); HttpWebRequest request = (HttpWebRequest)WebRequest.Create ("http://someurl.com"); request.PreAuthenticate = true; request.Credentials = new NetworkCredential ("username", "password");; request.Method = "PUT"; request.ContentType = "text/calendar"; request.ContentLength = data.Length; using (Stream stream = request.GetRequestStream ()) { stream.Write (data, 0, data.Length); } var response = (HttpWebResponse)request.GetResponse (); response.Close ();