【发布时间】:2016-01-28 16:45:37
【问题描述】:
所以我尝试了几种不同的格式并产生了不同的结果。我将在下面包含所有相关信息。
我的公司使用基于 Web 的应用程序来安排报告的生成。该服务通过电子邮件发送一个可以单击的 URL,并将立即开始“打开另存为取消”对话框。我正在尝试使用 C# 脚本作为 Visual Studio 项目的一部分自动下载这些报告的过程(最终目标是在 SQL Server 中导入这些报告)。
我在使用 WebClient 开始下载此文件时遇到了极大的困难这是我尝试过的任何方法中最接近的:
*注意:我从 URL 中删除了所有识别信息,但保留了所有特殊字符和基本架构。希望这将是保护机密信息和让您足够了解我的困境之间的一种愉快的媒介。该网址确实在手动复制并粘贴到 Internet Explorer 的地址栏中时起作用。
错误信息:
“无效的 URI:无法解析主机名。”
public void Main()
{
using (var wc = new System.Net.WebClient())
{
wc.DownloadFile(
new Uri(@"http:\\webapp.locality.company.com\scripts\rds\cgigetf.exe?job_id=3058352&file_id=1&format=TAB\report.tab"),
@"\\server\directory\folder1\folder2\folder3\...\...\...\rawfile.tab");
}
}
还请注意,我已尝试设置:
string sourceUri = @"http:\\webapp.locality.company.com\scripts\rds\cgigetf.exe?job_id=3058352&file_id=1&format=TAB\report.tab\abc123_3058352.tab";
Uri uriPath;
Uri.TryCreate(sourceUri, UriKind.Absolute, out uriPath);
但 uriPath 仍然为空 - TryCreate 失败。
我已尝试执行 webrequest / webresponse / WebStream,但仍然找不到主机。
我尝试包含下载 URL(如我的第一个代码示例中)和下载 URL + 文件名(如我的第二个代码示例中)。如果我手动进行下载,我不需要 URL 中的文件名来启动下载。我也尝试用文件名替换 URL 的“report.tab”部分,但无济于事。
非常感谢您的帮助,因为我对此一无所知。我留下的唯一想法是,我的 URL 中的一个特殊字符可能会妨碍我,但我不知道会是哪一个或如何正确处理它。
提前致谢!
【问题讨论】:
标签: c# url uri webclient downloadfile