2016-11-18 5 views
1

"multipart/form-data; boundary=----WebKitFormBoundaryaYcxA3wAp5XMUV2w"이라는 C# HttpClient 요청에서 Content-Type 헤더를 설정하려고합니다.C# HttpClient가 포함 된 Content-Type 헤더를 보낼 수 없습니다.

지금까지 아무런 예외/오류도 발생시키지 않는 TryAddWithoutValidation을 사용해 보았지만 피들러에서 요청을 보았을 때 추가되지 않았습니다. 아래 코드를 참조하십시오.

client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundaryaYcxA3wAp5XMUV2w"); 
response = client.PostAsync("https://example.com", byteContent).Result; 

나는 또한 내가 문자열로 보내려고하고 StringContent을 사용하고 바이트 배열로 변환 시도했지만이 "multipart/form-data; boundary=----WebKitFormBoundaryaYcxA3wAp5XMUV2w"가 무효라고 예외가 발생합니다.

StringContent testStringcontent = new StringContent(Encoding.Default.GetString(allContentBytes), Encoding.UTF8, "multipart/form-data; boundary=----WebKitFormBoundaryaYcxA3wAp5XMUV2w"); 
response = client.PostAsync("https://example.com", testStringcontent).Result; 

나는 모든 유사한 질문에 제안을 시도하고있는 예외의 일종을 던져 헤더를 보내거나하지 얻을 볼 수 없습니다. 내가 이것을 버려야하고 더 유연한 웹 클라이언트를 사용해야합니까?

답변

1

는이

ByteArrayContent byteContent = new ByteArrayContent(allContentBytes); 
byteContent.Headers.Remove("Content-Type"); 
byteContent.Headers.Add("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundaryaYcxA3wAp5XMUV2w"); 
작업을 얻었다