Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebClient.DownloadFile-URI无效:无法分析主机名_C#_Url_Uri_Webclient_Downloadfile - Fatal编程技术网

C# WebClient.DownloadFile-URI无效:无法分析主机名

C# WebClient.DownloadFile-URI无效:无法分析主机名,c#,url,uri,webclient,downloadfile,C#,Url,Uri,Webclient,Downloadfile,所以我尝试了几种不同的格式,得到了不同的结果。我将在下面列出所有相关信息 我的公司使用基于web的应用程序来安排报告的生成。该服务通过电子邮件发送一个可以点击的URL,并将立即开始“打开另存为取消”对话框。作为VisualStudio项目的一部分,我正在尝试使用C#脚本自动化下载这些报告的过程(最终目标是在SQL Server中导入这些报告) 我在使用WebClient启动此文件的下载时遇到了极大的困难,这是我尝试过的最接近的方法: *注意:我从URL中删除了所有标识信息,但保留了所有特殊字符和

所以我尝试了几种不同的格式,得到了不同的结果。我将在下面列出所有相关信息

我的公司使用基于web的应用程序来安排报告的生成。该服务通过电子邮件发送一个可以点击的URL,并将立即开始“打开另存为取消”对话框。作为VisualStudio项目的一部分,我正在尝试使用C#脚本自动化下载这些报告的过程(最终目标是在SQL Server中导入这些报告)

我在使用WebClient启动此文件的下载时遇到了极大的困难,这是我尝试过的最接近的方法:

*注意:我从URL中删除了所有标识信息,但保留了所有特殊字符和基本架构。希望这将是一个很好的媒介,既能保护机密信息,又能让你充分理解我的困境。手动复制并粘贴到internet explorer的地址栏时,URL不起作用

错误消息:

“无效URI:无法分析主机名。”

还请注意,我已尝试设置:

        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中的一个特殊字符正在妨碍我,但我不知道会是哪个字符,也不知道如何正确处理它


提前谢谢

我的第一个想法是,您的URI反斜杠被解释为转义字符,导致评估后的结果毫无意义。我将尝试一个快速测试,其中每个反斜杠都作为自身转义(即在每个实例中用“\”而不是“\”)。我也有点困惑,为什么你的URI没有使用前斜杠

// Create an absolute Uri from a string.
Uri absoluteUri = new Uri("http://www.contoso.com/");

Ref:

我的第一个想法是,您的URI反斜杠被解释为转义字符,在计算后导致无意义的结果。我将尝试一个快速测试,其中每个反斜杠都作为自身转义(即在每个实例中用“\”而不是“\”)。我也有点困惑,为什么你的URI没有使用前斜杠

// Create an absolute Uri from a string.
Uri absoluteUri = new Uri("http://www.contoso.com/");

Ref:

我的第一个想法是,您的URI反斜杠被解释为转义字符,在计算后导致无意义的结果。我将尝试一个快速测试,其中每个反斜杠都作为自身转义(即在每个实例中用“\”而不是“\”)。我也有点困惑,为什么你的URI没有使用前斜杠

// Create an absolute Uri from a string.
Uri absoluteUri = new Uri("http://www.contoso.com/");

Ref:

我的第一个想法是,您的URI反斜杠被解释为转义字符,在计算后导致无意义的结果。我将尝试一个快速测试,其中每个反斜杠都作为自身转义(即在每个实例中用“\”而不是“\”)。我也有点困惑,为什么你的URI没有使用前斜杠

// Create an absolute Uri from a string.
Uri absoluteUri = new Uri("http://www.contoso.com/");

Ref:

斜杠由“…”转义,导致字符串被视为字符串文字。然而,您确实一针见血——不知何故,正斜杠被转换为反斜杠(我可能是在编写大量本地文件路径时意外地这样做的)。向几个人展示了这个,没有人注意到!非常感谢你敏锐的目光!这是生活中的小事…斜杠被@…“转义,导致字符串被视为字符串文字。然而,您确实一针见血——不知何故,正斜杠被转换为反斜杠(我可能是在编写大量本地文件路径时意外地这样做的)。向几个人展示了这个,没有人注意到!非常感谢你敏锐的目光!这是生活中的小事…斜杠被@…“转义,导致字符串被视为字符串文字。然而,您确实一针见血——不知何故,正斜杠被转换为反斜杠(我可能是在编写大量本地文件路径时意外地这样做的)。向几个人展示了这个,没有人注意到!非常感谢你敏锐的目光!这是生活中的小事…斜杠被@…“转义,导致字符串被视为字符串文字。然而,您确实一针见血——不知何故,正斜杠被转换为反斜杠(我可能是在编写大量本地文件路径时意外地这样做的)。向几个人展示了这个,没有人注意到!非常感谢你敏锐的目光!这是生活中的小事。。。