.NET эквивалент curl для загрузки файла в REST API? - PullRequest
5 голосов
/ 20 марта 2012

Мне нужно загрузить файл ics в REST API.Единственный приведенный пример - команда curl.

Команда, используемая для загрузки файла с использованием curl, выглядит следующим образом:

curl --user {username}:{password} --upload-file /tmp/myappointments.ics http://localhost:7070/home/john.doe/calendar?fmt=ics

Как это сделать с помощью HttpWebRequest в C #?

Также обратите внимание, что я могу иметь только ics в виде строки (не фактический файл).

1 Ответ

5 голосов
/ 23 марта 2012

Мне удалось получить рабочее решение.Причуда заключалась в том, чтобы установить метод запроса PUT вместо POST.Вот пример кода, который я использовал:

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 ();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...