
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 サイトの他の関連記事を参照してください。