Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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:链接中的非法字符_C#_Winforms_Web_Hyperlink_Download - Fatal编程技术网

C#WebClient:链接中的非法字符

C#WebClient:链接中的非法字符,c#,winforms,web,hyperlink,download,C#,Winforms,Web,Hyperlink,Download,[解决方案] 我将url传递给path参数,并将path传递给url参数。愚蠢的我 [/SOLUTION] 我想做一个更新程序,所以我必须从dropbox下载一些文件(.zip)。我在一个.dll中有一个下载方法,这是a自己写的,不应该是一个问题,现在我用一个字符串数组的链接调用这个方法。我得到: 现在,错误消息是德语,所以我将为您翻译:“发出WebClient请求时出现异常” 我可以提供有关错误的更多信息,确切的错误是: “下载字符串中存在非法字符” 我尝试了dropbox的另一个链接 有效

[解决方案]

我将url传递给path参数,并将path传递给url参数。愚蠢的我

[/SOLUTION]

我想做一个更新程序,所以我必须从dropbox下载一些文件(.zip)。我在一个.dll中有一个下载方法,这是a自己写的,不应该是一个问题,现在我用一个字符串数组的链接调用这个方法。我得到:

现在,错误消息是德语,所以我将为您翻译:“发出WebClient请求时出现异常”

我可以提供有关错误的更多信息,确切的错误是:

“下载字符串中存在非法字符”

我尝试了dropbox的另一个链接

有效:
https://www.dropbox.com/s/n82iqqf1vmfrfhr/Base.zip?dl=1

不起作用:
https://www.dropbox.com/s/dd146f85trixobv/update1.zip?dl=1

两个链接来自同一阵列…

这很好用。所以我不知道什么是非法角色

字符串数组是使用File.ReadAllLines()生成的,它读取一个包含3个链接的文件

该文件看起来与此完全相同:

https://www.dropbox.com/s/n82iqqf1vmfrfhr/Base.zip?dl=1
https://www.dropbox.com/s/dd146f85trixobv/update1.zip?dl=1
https://www.dropbox.com/s/xcmat8x8qlijxsn/update2.zip?dl=1

正如我在1号图片中看到的,您设置了路径而不是链接! 您的代码是:

webClient.DownloadFile(path,link);
webClient.DownloadFile(link,path);
但正确的代码是:

webClient.DownloadFile(path,link);
webClient.DownloadFile(link,path);
因此,请使用以下代码:

WebClient wb = new WebClient();
var link = new Uri("https://www.dropbox.com/s/dd146f85trixobv/update1.zip?dl=1")
wb.DownloadFile(link, @path);

正如我在1号图片中看到的,您设置了路径而不是链接! 您的代码是:

webClient.DownloadFile(path,link);
webClient.DownloadFile(link,path);
但正确的代码是:

webClient.DownloadFile(path,link);
webClient.DownloadFile(link,path);
因此,请使用以下代码:

WebClient wb = new WebClient();
var link = new Uri("https://www.dropbox.com/s/dd146f85trixobv/update1.zip?dl=1")
wb.DownloadFile(link, @path);

可能链接中有
\r\n
或类似的内容?你能检查一下吗?链接是:https://www.dropbox.com/s/dd146f85trixobv/update1.zip?dl=1,所以链接中有/s/d,但这并不能解释错误,因为https://www.dropbox.com/s/n82iqf1vmfhr/Base.zip?dl=1工作正常,并且包含相同的内容。
/s/d
没有问题:)但是你,说你正在从文件中读取链接。可能在源文件的相应行中有一个非法字符。这些文件与我在问题部分中显示的一模一样。除了链接本身之外,里面什么都没有。据我所知,它们被正确读取了,因为在第一张图片中,当您查看第一个蓝色括号时,链接与文件中的链接完全相同,因此读取正确。错误是否也可能是路径不正确?可能链接中有
\r\n
或类似的内容?你能检查一下吗?链接是:https://www.dropbox.com/s/dd146f85trixobv/update1.zip?dl=1,所以链接中有/s/d,但这并不能解释错误,因为https://www.dropbox.com/s/n82iqf1vmfhr/Base.zip?dl=1工作正常,并且包含相同的内容。
/s/d
没有问题:)但是你,说你正在从文件中读取链接。可能在源文件的相应行中有一个非法字符。这些文件与我在问题部分中显示的一模一样。除了链接本身之外,里面什么都没有。据我所知,它们被正确读取了,因为在第一张图片中,当您查看第一个蓝色括号时,链接与文件中的链接完全相同,因此读取正确。错误是否也可能是路径不正确?您是对的,我不敢相信我没有发现这一点:D但这很有意义,因为我从另一个链接以不同的方式下载,而且我的方式是正确的……你说的对,我不敢相信我没有找到但这很有意义,因为我从另一个链接以不同的方式下载,而且我的方式是正确的。。。