In this article I will explain with an example, how to download XML file from remote URL in ASP.Net Core MVC.
The XML file will be downloaded from the URL using WebClient class and then will be saved in a Folder (Directory).
XML File URL
The following XML file will be used in this article.
<?xml version="1.0" standalone="yes"?>
<Customers>
<Customer>
<CustomerId>1</CustomerId>
<Name>John Hammond</Name>
<Country>United States</Country>
</Customer>
<Customer>
<CustomerId>2</CustomerId>
<Name>Mudassar Khan</Name>
<Country>India</Country>
</Customer>
<Customer>
<CustomerId>3</CustomerId>
<Name>Suzanne Mathews</Name>
<Country>France</Country>
</Customer>
<Customer>
<CustomerId>4</CustomerId>
<Name>Robert Schidner</Name>
<Country>Russia</Country>
</Customer>
</Customers>
Namespaces
You will need to import the following namespace.
Controller
The Controller consists of following Action method.
Action method for handling GET operation
Inside this action method, the XML file is downloaded from the URL using DownloadFile method of the WebClient class.
DownloadFile method
It accepts the following two parameters:
address – The URL of the file to be downloaded.
fileName – Path of the Folder (Directory) where the file will be downloaded.
public class HomeController : Controller
{
public IActionResult Index()
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
WebClient webClient = new WebClient();
webClient.DownloadFile("https://raw.githubusercontent.com/aspsnippets/test/master/Customers.xml", @"D:\Files\Customer.xml");
return View();
}
}
View
There is no coding part in View page. Hence, it is skipped.
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
</body>
</html>
Screenshot
The downloaded XML file
Downloads