Как разместить и получить файл с веб-API

У меня есть метод Api Post, который я хочу принимать любой тип файла, и это выглядит так:

[HttpPost]
    public async Task<IHttpActionResult> Post()
    {
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
        }

        var provider = new MultipartMemoryStreamProvider();
        await Request.Content.ReadAsMultipartAsync(provider);

        if (provider.Contents.Count != 1)
        {
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest,
                "You must include exactly one file per request."));
        }

        var file = provider.Contents[0];
        var filename = file.Headers.ContentDisposition.FileName.Trim('\"');
        var buffer = await file.ReadAsByteArrayAsync();
  }

Это работает в Fiddler, когда я пытаюсь опубликовать изображение на нем. Тем не менее, я пишу клиентскую библиотеку, и у меня есть метод, который выглядит следующим образом:

        public string PostAttachment(byte[] data, Uri endpoint, string contentType)
    {
        var request = (HttpWebRequest)WebRequest.Create(endpoint);
        request.Method = "POST";
        request.ContentType = contentType;
        request.ContentLength = data.Length;

        var stream = request.GetRequestStream();
        stream.Write(data, 0, data.Length);
        stream.Close();

        var response = (HttpWebResponse) request.GetResponse();
        using (var reader = new StreamReader(response.GetResponseStream()))
        {
           return reader.ReadToEnd();
        }            
    }

Всякий раз, когда я пытаюсь опубликовать изображение, используя это, я получаю ошибку UnsuportedMediaType. Я предполагаю, что это потому, что мое изображение не является многокомпонентным контентом? Есть ли простой способ сделать мой запрос правильного типа?

Если мне нужно изменить свой метод публикации через web api, есть ли простой способ сделать это без записи файлов на сервер и сохранения их в памяти?

Ответы на вопрос(1)

Ваш ответ на вопрос