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

C# 使用下载弹出窗口从URI自动下载xml文件,c#,asp.net-mvc,razor,webclient,C#,Asp.net Mvc,Razor,Webclient,ASP.NET MVC 4剃须刀: 我已经为此工作了一段时间,所以如果我遗漏了一些明显的东西,我很抱歉,但我将非常感谢能提供的任何帮助 简而言之,我要做的是使用C#从URI下载一个XML文件。它应该非常简单,但是URI会导致一个空白页面,其中有一个下载提示弹出窗口,并填充了一个动态创建的文件名 我不能提供URI,因为它是保密的,但这是我一直在玩的代码。(请原谅我对这件事的无知,这是我第一次尝试这样的事情) 我也试过: using (WebClient Client = new WebClient

ASP.NET MVC 4剃须刀:

我已经为此工作了一段时间,所以如果我遗漏了一些明显的东西,我很抱歉,但我将非常感谢能提供的任何帮助

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

我不能提供URI,因为它是保密的,但这是我一直在玩的代码。(请原谅我对这件事的无知,这是我第一次尝试这样的事情)

我也试过:

using (WebClient Client = new WebClient())
{
    Client.DownloadFile(uriString + fileString, dirString + fileString);
}
老实说,这个代码对我来说并不适用。下载的文件不正确。XML文件似乎包含从其下载的网页中的代码,如果我尝试图像之类的内容,图像就会被破坏。因此,我们再次感谢您的帮助


提前谢谢

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

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

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

“XML文件似乎包含从其下载的网页中的代码”
-您确定URI正确吗?它是您要查找的实际文件的URI,还是仅显示该文件的页面?在提供文件之前,目标网站是否需要进一步的操作?如果URI是敏感的,您能否提供一个我们可能看到的相同示例?(还有,这与ASP.NET、MVC 4和/或Razor有什么关系?)您好,谢谢您的快速回复。URI将导致一个空白页面,该页面将启动相关文件的下载弹出窗口。以前我们会从这个弹出窗口手动下载文件,但是,我正在尝试自动化这个过程以提高易用性。当我发现有类似的行为时,我会发布一个链接。我提到了ASP.NET等等,以防它可能是重要信息,有时我看到修复需要一些JavaScript或类似的东西。
“启动下载弹出窗口的空白页面”
-我很好奇这个“弹出窗口”是什么,以及内容实际上是如何提供的。您可以做的一件事是在一些浏览器调试工具(如Firebug或Chrome developer工具)中捕获实际的HTTP请求和响应,并查看此交互实际在做什么。您正在寻找的是一个HTTP响应,它只是文件内容本身,但听起来您得到的似乎是某种HTML,它以某种方式启动了对文件的第二个请求。我将使用Firebug查看它。谢谢,这是个好主意。这是我发现的最接近于显示URI行为的示例,但filetype除外。Firefox_Setup.exe的链接上一个链接似乎已断开,它一定只是临时链接。去吧。右键单击“下载”并在新选项卡中使用链接地址将显示示例行为。似乎使用Firebug几乎不可能从实际URI中获得必要的信息。与此同时,我正在研究其他的选择。但我会在找到解决方案后更新它。
var request = WebRequest.Create("PopupUrl");
var response = request.GetResponse();
string url = GetUrlFromResponseByRegExOrXMLParsing();
var client = new WebClient();
webClient.DownloadFile(url, filePath);