首页 > 后端开发 > C++ > 如何在 C# 中执行 HTTP POST 文件上传?

如何在 C# 中执行 HTTP POST 文件上传?

DDD
发布: 2025-01-11 19:32:44
原创
533 人浏览过

How to Perform HTTP POST File Uploads in C#?

C# 中的 HTTP POST 文件上传

在 Web 应用程序中,通过 HTTP POST 发送文件是一项常见的任务。在 C# 中,可以使用 HttpWebRequest 类和 MultipartFormDataContent 对象来实现此功能。

创建 HttpWebRequest 对象

首先,创建一个 HttpWebRequest 对象并指定 Web 服务器的 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() 将请求发送到 Web 服务器。

<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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板