我试图从pastebin获取链接。链接是原始粘贴中唯一的文本。然后我想从pastebin中的链接下载一个文件。
WebRequest request = WebRequest.Create("http://pastebin.com/raw/Dtdf2qMp");
WebResponse response = request.GetResponse();
System.IO.StreamReader reader = new
System.IO.StreamReader(response.GetResponseStream());
Console.WriteLine(reader.ReadToEnd());
WebClient client = new WebClient();
client.DownloadFile (Link gotten from pastebin here, "c:\\File");
System.Threading.Thread.Sleep(5000);
答案 0 :(得分:0)
不应将文本读取转储到控制台输出,而应将其分配给变量。
var pastebinOutput = reader.ReadToEnd();
然后将其作为DownloadFile方法的链接传递。如果您想验证它实际上是您从原始pastebin获得的URL,您可以查看System.Uri
的TryCreate方法。
答案 1 :(得分:0)
我有一个解决方案-假设您的链接位于原始的pastebin链接中(我的是一个.txt文件,说“有效”),我建议您准确地复制并粘贴以下代码-如果您得到一个文件, “有效”,然后您可以更改pastebin链接和文件名。如果您不想打开文件,请删除Process.Start-如果要更改延迟,只需更改数字(以毫秒为单位)即可。此外,您可以将格式从.txt更改为.exe或任何文件格式(或者您可以将其删除,以便在下载链接中使用其默认名称):
WebRequest request = WebRequest.Create("https://pastebin.com/raw/QAWufg1z");
WebResponse response = request.GetResponse();
System.IO.StreamReader reader = new
System.IO.StreamReader(response.GetResponseStream());
var pastebinOutput = reader.ReadToEnd();
WebClient client = new WebClient();
client.DownloadFile(pastebinOutput, @".\downloaded.txt");
MessageBox.Show("File should open automatically in the next minute. Please wait...");
await Task.Delay(3000); //3000 = 3 seconds
Process.Start(@".\downloaded.txt");