2014-10-23 2 views
3

HttpClient를 사용하여 아래 코드를 사용하여 WebAPI 리소스에 파일을 업로드하고 있습니다. MultipartFormDataContent를 사용하기 때문에 요청 메시지 내용 유형이 multipart/form-data로 설정됩니다. WebAPI에서 텍스트/일반 미디어 유형 만 허용하도록 콘텐츠 헤더를 검사합니다. MultipartFormDataContent와 함께 HttpClient를 사용하는 경우 파일 형식에 대한 콘텐츠 머리글을 어디에 설정해야합니까?HttpClient를 사용하여 MultipartFormDataContent를 보낼 때 ContentType 헤더 설정

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; 
} 
당신은 예를 들어, 내 경우에는 내가 이미지 및 사용에 다음 코드를 업로드하고, StreamContent 객체의 헤더 속성을 사용하여 ContentType이 속성을 설정할 수

답변

5

:

 StreamContent image = new StreamContent(fileStream); 
     image.Headers.ContentType = new MediaTypeHeaderValue(MimeMapping.GetMimeMapping(imagePath)); 
관련 문제