ホームページ >バックエンド開発 >C++ >C# を使用して HTTP POST 経由でファイルを送信する方法: 包括的なガイド

C# を使用して HTTP POST 経由でファイルを送信する方法: 包括的なガイド

Susan Sarandon
Susan Sarandonオリジナル
2025-01-11 19:26:43578ブラウズ

How to Send Files via HTTP POST Using C#: A Comprehensive Guide

C# HTTP POST ファイルアップロードの詳細説明

この記事では、C# を使用してファイルを Web サーバーにアップロードする方法を詳しく紹介します。これは Windows アプリケーション開発の一般的な要件であり、HTTP フォーム リクエストの原理を理解する必要があります。

HttpWebRequest を使用して実装 (.NET 4.5 より前に適用可能)

.NET 4.5 より前では、ファイルのアップロードには通常、従来の HttpWebRequest オブジェクトが使用されていました。手順は次のとおりです。

  1. URI、メソッド、およびその他の必要なヘッダーを指定して、HttpWebRequest オブジェクトを作成します。
  2. req.GetRequestStream() を呼び出して HttpStream オブジェクトを作成します。
  3. ストリームにアップロードするファイルの内容を読み取ります。

サンプルコード:

<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 経由でファイルを Web サーバーに簡単にアップロードできます。

以上がC# を使用して HTTP POST 経由でファイルを送信する方法: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。