2017-10-26 11 views
0

내 MVC 응용 프로그램에서 3.5 MB 파일을 업로드합니다. 해당 파일을 웹 API 끝점으로 보내려면 요청의 콘텐츠 길이가 파일 크기의 두 배 (7MB)인지 확인합니다.웹 API 내용 요청 길이 파일 크기를 두 번

5 MB 파일로이 이론을 테스트했으며 웹 API로 전송할 때 콘텐츠 길이가 10 MB인지 확인했습니다.

using (HttpClient client = new HttpClient()) 
{ 
    client.BaseAddress = new Uri(url); 
    client.DefaultRequestHeaders.Accept.Clear(); 
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 

    return await client.PostAsync(requestUri, new StringContent(serializedContent, Encoding.Unicode, "application/json")); 
} 

내가 POST 방법에서 내 MVC 컨트롤러에서이 메서드를 호출하고 : 내 웹 API 엔드 포인트에 파일을 전송하고 방법을 아래

이다. 내 콘텐츠 길이가 왜 두 배가됩니까?

UPDATE : 은 내가 16 비트 문자를 사용 당신은 Encoding.Unicode을 사용하는 문자열

답변

1

바이트 배열을 포함하는 개체를 변환하는 JSON.NET의 JsonConvert.SerializeObject 방법을 사용하고 있음을 유의 기본적으로. 공간의 약 절반을 절약하려면 기본적으로 8 비트 문자를 사용하는 Encoding.UTF8을 사용하십시오. 단지 8 비트로 표현할 수없는 문자는 다중 바이트를 사용합니다.