【发布时间】:2013-07-30 15:13:13
【问题描述】:
ASP.NET MVC 4 剃刀:
我已经为此工作了一段时间,所以如果我遗漏了一些明显的东西,我深表歉意,但我将非常感谢可以提供的任何帮助。
简而言之,我要做的是使用 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 文件似乎包含从网页下载它们的代码,如果我尝试使用图像之类的东西,图像就会损坏。因此,再次感谢任何帮助。
提前致谢!
【问题讨论】:
-
"The XML files appear to contain the code from the webpage they've been downloaded from"- 你确定 URI 是正确的吗?它是您要查找的实际文件的 URI,还是只是显示该文件的页面?目标网站在提供文件之前是否需要进一步操作?如果 URI 是敏感的,你能提供一个我们可以看到的相同示例吗? (另外,这与 ASP.NET、MVC 4 和/或 Razor 有什么关系?) -
您好,感谢您的快速回复。 URI 指向一个空白页面,该页面启动相关文件的下载弹出窗口。以前我们会从这个弹出窗口手动下载文件,但是,我正在尝试自动化该过程以提高易用性。当我发现有相同作用的东西时,我会发布一个链接。我提到了 ASP.NET 等,以防它可能是重要信息,有时我看到修复需要一点 JavaScript 或类似的东西。
-
"a blank page that initiates a download popup"- 我很好奇这个“弹出窗口”是什么以及内容是如何实际提供的。您可以做的一件事是在某些浏览器调试工具(如 Firebug 或 Chrome 开发人员工具)中捕获实际的 HTTP 请求和响应,并查看此交互实际在做什么。你正在寻找的是一个 HTTP 响应,它只是文件内容本身,但听起来你得到的是一些 HTML,它以某种方式启动了对文件的第二个请求。 -
我会用 Firebug 来看看。谢谢,这是个好主意。这是我发现的显示 URI 行为的最接近的示例,文件类型除外。 Firefox_Setup.exe 的链接link
-
之前的链接好像坏了,应该只是暂时的。复制去here。右键单击“下载”并在新选项卡中使用链接地址将显示示例行为。似乎几乎不可能使用 Firebug 从实际 URI 中获取必要的信息。与此同时,我正在研究其他选择。但是当找到解决方案时,我会更新它。
标签: c# asp.net-mvc razor webclient