📅  最后修改于: 2023-12-03 14:49:20.806000             🧑  作者: Mango
本文将介绍如何在 ASP.NET Web API 中使用 C# 来从URL下载文件。我们将解释下载文件的步骤,并提供相应的代码示例和解释。
下面是使用 ASP.NET Web API进行文件下载的步骤:
首先,我们需要创建一个继承自 ApiController
的控制器类,用于处理文件下载请求。在这个控制器中,我们将使用一个动作方法来处理下载请求。
public class DownloadController : ApiController
{
[HttpGet]
[Route("api/download")]
public HttpResponseMessage DownloadFile()
{
// 下载文件的实现代码
}
}
在下载方法中,我们将使用 HttpClient
类从给定的 URL 下载文件。我们将使用 HttpResponseMessage
来返回下载的文件内容。
[HttpGet]
[Route("api/download")]
public async Task<HttpResponseMessage> DownloadFile()
{
using (HttpClient client = new HttpClient())
{
// 下载文件的 URL
string fileUrl = "https://example.com/file.txt";
// 发起 GET 请求并获取响应
HttpResponseMessage response = await client.GetAsync(fileUrl);
// 确保响应成功
response.EnsureSuccessStatusCode();
// 获取文件内容
byte[] fileBytes = await response.Content.ReadAsByteArrayAsync();
// 创建响应消息并设置文件内容
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new ByteArrayContent(fileBytes);
// 设置文件下载的 MIME 类型和文件名
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "file.txt"
};
return result;
}
}
在 WebApiConfig.cs
中注册我们的路由。确保将请求映射到我们创建的 DownloadController
。
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// 注册路由
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
最后,我们需要启动我们的 Web API 服务。可以通过 F5 键或命令行启动。
以上就是使用 ASP.NET Web API (C#) 从URL下载文件的步骤和示例代码。在这个示例中,我们使用了 HttpClient
来发起请求,并通过 HttpResponseMessage
返回下载的文件内容。
务必根据实际情况修改示例代码,例如替换 fileUrl
为你要下载的文件的实际URL,并根据需要设置合适的文件名、MIME 类型等。
希望本文对使用 ASP.NET Web API 下载文件的开发者有所帮助!