Я работаю над проектом, который требует использования команд curl для загрузки файла на определенный сайт. Я хочу, чтобы это было реализовано с помощью C#. От взгляда на подобные вопросы на SO я не нашел ничего, что, кажется, работает для меня, если я не сделаю это неправильно.Использование WebRequest вместо команды curl
Это локон команда, которую я успешно использовать с Cygwin:
curl -i -u user:password -F '[email protected]\Users\User\Desktop\test.jpg' -F 'json={"content": {"type": "text/html", "text": "<body><p>look at me, look at me</p></body>"}, "type": "document", "subject": "Document with Attachment"};type=application/json' http://someurl
Прямо сейчас я пытаюсь сделать эту работу с WebRequest, как я читал, что это возможно и на других должностях. Это то, что у меня есть до сих пор.
WebRequest request = WebRequest.Create("http://someurl");
request.PreAuthenticate = true;
request.ContentType = "application/json";
request.Method = "POST";
string authInfo = Convert.ToBase64String(Encoding.UTF8.GetBytes("user:password"));
request.Headers["Authorization"] = "Basic " + authInfo;
//what do I set my buffer to?
Stream reqstr = request.GetRequestStream();
reqstr.Write(buffer, 0, buffer.Length);
reqstr.Close();
WebResponse response = request.GetResponse();
Что я устанавливаю для своего буфера здесь, чтобы написать команду curl, которая, в свою очередь, должна отправить файл test.jpg? Кроме того, я пробовал использовать libcurl без успеха. Любые указатели в правильном направлении приветствуются!
Вы должны написать содержание типа многочастных/form-данных (параметр -F завитка посыла 2 поля, в формате JSON и файл). Вот пример: http://stackoverflow.com/a/3890955/209727 –
дамп все, что auth stuff. request.Credentials = новый NetworkCredential (пользователь, пароль); –