Я разрабатываю приложение C #, которое использует Redmine REST API, оно использует RestSharp Client. Все остальные вызовы REST, которые я выполняю, работают нормально, но я не могу найти способ загрузить вложения. Я широко искал в Интернете и пробовал много решений, но ничего не помогло. Документация Redmine по прикрепленным файлам: http://www.redmine.org/projects/redmine/wiki/Rest_api#Attaching-files На самом деле код выглядит так:
RestClient client = new RestClient("http://myclient/redmine/");
client.Authenticator = new HttpBasicAuthenticator("myuser", "mypsw");
var request2 = new RestRequest("uploads.json", Method.POST);
request2.AddHeader("Content-Type", "application/octet-stream");
request2.RequestFormat = RestSharp.DataFormat.Json;
byte[] dataToSend = File.ReadAllBytes(AddIssue.attach.Text);
request2.AddBody(dataToSend);
IRestResponse response2 = client.Execute(request2);
resultbox.Text = response2.Content;
Если я выполню его выше, ничего не произойдет, и ответ будет пустым. Если я удалю строку 7 (AddBody), она действительно работает, но, конечно, ничего не загружается, ответ JSON: {"upload": {"token": "11." }}
Итак, на самом деле, реальный вопрос заключается в том, что использовать в AddBody () для отправки файла как application / octet-stream. Поскольку у RestSharp также есть метод request.AddFile (), я тоже пробовал его разными способами, но ничего ...
Любая помощь очень ценится!
AddFile()
создает форму, состоящую из нескольких частей). Загрузка в Dropbox с помощью Restsharp PCL может дать некоторые идеи. - person Shawn South   schedule 31.12.2014