C#으로 HTTP POST 파일 업로드
HTTP POST를 통해 파일을 보내는 것은 웹 애플리케이션에서 일반적인 작업입니다. C#에서는 HttpWebRequest
클래스와 MultipartFormDataContent
개체를 사용하여 이 기능을 구현할 수 있습니다.
HttpWebRequest 객체 생성
먼저 HttpWebRequest
객체를 생성하고 웹 서버의 URI를 지정합니다. 그런 다음 Method
속성을 "POST"로 설정하고 ContentType
속성을 전송되는 파일의 적절한 콘텐츠 유형으로 설정합니다.
<code class="language-csharp">HttpWebRequest req = WebRequest.Create(uri) as HttpWebRequest; req.Method = "POST"; req.ContentType = file.ContentType;</code>
파일 업로드 준비 완료
파일을 보내려면 MultipartFormDataContent
개체를 생성하여 요청에 포함하세요. MultipartFormDataContent
한 번의 요청으로 양식 데이터와 바이너리 데이터를 모두 보낼 수 있습니다.
<code class="language-csharp">using (var formData = new MultipartFormDataContent()) { formData.Add(new StringContent(file.Name), "file"); formData.Add(new StreamContent(file.Content), file.Name, file.Name); }</code>
요청 보내기
마지막으로 GetResponse()
또는 GetResponseAsync()
을 사용하여 웹 서버에 요청을 보냅니다.
<code class="language-csharp">HttpWebResponse response = null; try { response = req.GetResponse() as HttpWebResponse; } catch (Exception e) { // 处理异常 }</code>
.NET 4.0 이하의 대안
.NET 4.0 이하의 경우 NuGet의 Microsoft.Net.Http
패키지를 사용하여 파일 업로드 프로세스를 단순화할 수 있습니다.
<code class="language-csharp">using System.Net.Http; using System.Net.Http.Headers; private async Task<System.IO.Stream> Upload(string actionUrl, string paramString, Stream paramFileStream, byte[] paramFileBytes) { using (var client = new HttpClient()) { using (var formData = new MultipartFormDataContent()) { formData.Add(new StringContent(paramString), "param1"); formData.Add(new StreamContent(paramFileStream), "file1"); formData.Add(new ByteArrayContent(paramFileBytes), "file2"); var response = await client.PostAsync(actionUrl, formData); if (!response.IsSuccessStatusCode) { return null; } return await response.Content.ReadAsStreamAsync(); } } }</code>
위 내용은 C#에서 HTTP POST 파일 업로드를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!