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

标签 c# asp.net-mvc razor webclient

ASP.NET MVC 4 Razor :

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

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

由于其 secret 性,我无法提供 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 文件似乎包含从中下载它们的网页的代码,如果我尝试使用图像之类的东西,图像就会损坏。因此,再次感谢任何帮助。

提前致谢!

最佳答案

您使用的 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);

关于c# - 使用下载弹出窗口自动从 URI 下载 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17947605/

相关文章:

c# - 忽略 C# 命令行程序中的 try block

asp.net-mvc-2 - 为什么我们在 ASP.NET MVC 中使用 HTML 帮助器?

c# - 将 C# 代码转换为 Java 代码

c# - 以编程方式向类添加 using 指令

asp.net-mvc - Href ASP.NET MVC/Razor 的 URL 编码字符串

asp.net-mvc - 我应该如何维护请求之间的状态?

javascript - 查看 document.location.href 何时完成

css - 如何允许在网页中水平滚动

javascript - Razor 语法防止 Razor 代码片段后出现空格

c# - 同时运行这两个语句时如何防止 EntityFramework 死锁