>백엔드 개발 >C++ >C#에서 HTTP POST 파일 업로드를 수행하는 방법은 무엇입니까?

C#에서 HTTP POST 파일 업로드를 수행하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-11 19:32:44535검색

How to Perform HTTP POST File Uploads in C#?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.