C# HTTP POST ファイルアップロードの詳細説明
この記事では、C# を使用してファイルを Web サーバーにアップロードする方法を詳しく紹介します。これは 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 経由でファイルを Web サーバーに簡単にアップロードできます。
以上がC# を使用して HTTP POST 経由でファイルを送信する方法: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。