C# HTTP POST 파일 업로드에 대한 자세한 설명
이 기사에서는 C#을 사용하여 웹 서버에 파일을 업로드하는 방법을 자세히 소개합니다. 이는 Windows 애플리케이션 개발의 일반적인 요구 사항이며 HTTP 양식 요청의 원칙에 대한 이해가 필요합니다.
HttpWebRequest를 사용하여 구현됨(.NET 4.5 이전에 적용 가능)
.NET 4.5 이전에는 파일 업로드 시 일반적으로 기존 HttpWebRequest 개체를 사용했습니다. 단계는 다음과 같습니다.
req.GetRequestStream()
을 호출하여 HttpStream 객체를 생성합니다. 샘플 코드:
<code class="language-csharp">HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest; req.KeepAlive = false; req.Method = "POST"; req.ContentType = file.ContentType; req.ContentLength = file.Length; using (Stream requestStream = req.GetRequestStream()) using (Stream fileStream = File.OpenRead(file.FileName)) { fileStream.CopyTo(requestStream); }</code>
HttpClient 및 MultipartFormDataContent를 사용하여 구현됨(.NET 4.5 이상)
.NET 4.5 이상(또는 .NET 4.0에서 "Microsoft.Net.Http" NuGet 패키지 사용)에서는 HttpClient 및 MultipartFormDataContent를 사용하여 양식 요청을 더 쉽게 시뮬레이션할 수 있습니다.
샘플 코드:
<code class="language-csharp">private async Task<Stream> Upload(string actionUrl, string paramString, Stream paramFileStream, byte[] paramFileBytes) { HttpContent stringContent = new StringContent(paramString); HttpContent fileStreamContent = new StreamContent(paramFileStream); HttpContent bytesContent = new ByteArrayContent(paramFileBytes); using (var client = new HttpClient()) using (var formData = new MultipartFormDataContent()) { formData.Add(stringContent, "param1", "param1"); formData.Add(fileStreamContent, "file1", "file1"); formData.Add(bytesContent, "file2", "file2"); var response = await client.PostAsync(actionUrl, formData); if (response.IsSuccessStatusCode) { return await response.Content.ReadAsStreamAsync(); } } return null; }</code>
위 단계를 따르면 C# 애플리케이션을 사용하여 HTTP POST를 통해 웹 서버에 파일을 쉽게 업로드할 수 있습니다.
위 내용은 C#을 사용하여 HTTP POST를 통해 파일을 보내는 방법: 종합 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!