Équivalent .NET de curl pour charger un fichier dans une API REST?

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 ();