2014-10-23 4 views
3

Я использую HttpClient для загрузки файла в ресурс WebAPI, используя следующий код. Поскольку я использую MultipartFormDataContent, тип содержимого сообщения запроса устанавливается в multipart/form-data. В WebAPI я проверяю заголовок содержимого, чтобы разрешить только тип текстового/обычного носителя. Итак, где я устанавливаю заголовок содержимого для типа файла, если я использую HttpClient с MultipartFormDataContent.Настройка заголовка ContentType при отправке MultipartFormDataContent с использованием HttpClient

try 
{ 
    var content = new MultipartFormDataContent(); 

    string filePath = Server.MapPath("~/Content/" + "demo.txt"); 

    var filestream = new FileStream(filePath, FileMode.Open); 

    var fileName = System.IO.Path.GetFileName(filePath); 

    content.Add(new StreamContent(filestream), "file", fileName); 

    var requestMessage = new HttpRequestMessage() 
    { 
      Method = HttpMethod.Post, 
      Content = content, 
      RequestUri = new Uri("http://localhost:64289/api/uploads/"), 
     }; 

    var client = new HttpClient(); 

    client.DefaultRequestHeaders.Add("Accept", "application/json"); 

    HttpResponseMessage response = await client.SendAsync(requestMessage); 

    if (response.IsSuccessStatusCode) 
    { 
        /// 
    } 
} 
catch (Exception e) 
{ 
       throw; 
} 

ответ

5

Вы можете установить ContentType свойство с помощью заголовков свойство объекта StreamContent, например, в моем случае я загрузив изображение и использовать следующий код:

 StreamContent image = new StreamContent(fileStream); 
     image.Headers.ContentType = new MediaTypeHeaderValue(MimeMapping.GetMimeMapping(imagePath)); 
Смежные вопросы