使用下载弹出窗口自动从URI下载xml文件

时间:2013-07-30 12:53:53

标签: c# asp.net-mvc razor webclient

ASP.NET MVC 4 Razor:

我已经在这方面工作了一段时间,所以如果我遗漏了一些明显的东西,我会道歉,但我会非常感谢能提供的任何帮助。

简而言之,我要做的是使用C#从URI下载XML文件。它应该非常简单,但URI会导致一个空白页面,其下载提示弹出窗口中填充了动态创建的文件名。

由于其机密性质,我无法提供URI,但这里是我一直在玩的代码。 (原谅我对这件事的无知,这是我第一次尝试这样的事情)

byte[] data;
using (WebClient Client = new WebClient())
{
    data = Client.DownloadData(uriString + fileString);
}
File.WriteAllBytes(dirString + fileString, data);

我也试过了:

using (WebClient Client = new WebClient())
{
    Client.DownloadFile(uriString + fileString, dirString + fileString);
}

老实说,这段代码并不适合我。下载的文件不正确。 XML文件似乎包含他们从中下载的网页中的代码,如果我尝试像图像一样,图像就会被破坏。所以,再次,任何援助将不胜感激。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您使用的URI可能是错误的。您正在使用打开弹出页面的URI。弹出页面应该对动态生成的文件执行另一个GET。

要自动执行此过程,您应使用WebRequest获取弹出页面的内容。刮取页面内容以获取下载文件的实际URL。然后使用您编写的代码下载文件。

var request = WebRequest.Create("PopupUrl");
var response = request.GetResponse();
string url = GetUrlFromResponseByRegExOrXMLParsing();
var client = new WebClient();
webClient.DownloadFile(url, filePath);