void test() { DlTool dt = new DlTool(); // dt.downLoadFile("http://rarbg.to/download.php?id=sgxzclp&f=Layered-Nylons.13.05.06.Gracie.XXX.720p.WMV-GAGViD-[rarbg.to].torrent","d:\\a.torrent",); }
public static void downLoadFile(string url, string name, bool useProxy, string content) { bool success = false; while (!success) { Console.WriteLine(url); HttpWebResponse response = null; FileStream fstream = null; HttpWebRequest request = null; Stream stream = null; StreamReader reader = null; Stream streamReceive = null; try { Config1.mre.WaitOne(); CookieContainer cookieContainer = new CookieContainer(); Cookie vDVPaqSe = new Cookie("vDVPaqSe", "r9jSB2Wk", "/", "rarbg.to"); Cookie lastVisit = new Cookie("LastVisit", Config1.getLastVisit(), "/", "rarbg.to"); Cookie __utma = new Cookie("__utma", "9515318.860353583.1429342721.1449335760.1449670802.1", "/", ".rarbg.to"); Cookie __utmb = new Cookie("__utmb", "9515318.23.10.1449670802", "/", ".rarbg.to"); Cookie __utmc = new Cookie("__utmc", "9515318", "/", ".rarbg.to"); Cookie __utmz = new Cookie("__utmz", "9515318.1447862416.86.2.utmcsr=rarbg.com|utmccn=(referral)|utmcmd=referral|utmcct=/download.php", "/", ".rarbg.to"); Cookie __utmt = new Cookie("__utmt", "1", "/", ".rarbg.to"); cookieContainer.Add(vDVPaqSe); cookieContainer.Add(lastVisit); // cookieContainer.Add(bSbTZF2j); cookieContainer.Add(__utma); cookieContainer.Add(__utmb); cookieContainer.Add(__utmc); cookieContainer.Add(__utmz); cookieContainer.Add(__utmt); request = (HttpWebRequest)WebRequest.Create(url); request.CookieContainer = cookieContainer; request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36"; request.Timeout = 15000; request.KeepAlive = false; request.Referer = "http://rarbg.to/torrent/j1kx3ny"; if (useProxy) { WebProxy proxy = new WebProxy("10.10.8.1", 3128); request.Proxy = proxy; } response = (HttpWebResponse)request.GetResponse(); if (response.Cookies["LastVisit"] != null) { Config1.setLastVisit(response.Cookies["LastVisit"].ToString()); } streamReceive = response.GetResponseStream(); string path = Path.GetDirectoryName(name); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } if (File.Exists(name)) { name = Path.Combine(Path.GetDirectoryName(name), "duplicateName", Path.GetFileNameWithoutExtension(name) + "(" + System.Guid.NewGuid().ToString().Substring(0, 4) + ").torrent"); Console.WriteLine("duplicate filename: " + name); } stream = new MemoryStream(); streamReceive.CopyTo(stream); reader = new StreamReader(stream); stream.Position = 0; string fileContent = reader.ReadToEnd(); stream.Position = 0; fstream = new FileStream(name, FileMode.Create); stream.CopyTo(fstream); DlTool.SaveFile(content, name + ".htm"); success = true; } catch (Exception ex) { Console.WriteLine(ex.Message + " " + url); //if (ex.Message.Contains("接收时发生错误") && !Config1.checkTime() || ex.Message.Contains("不支持给定路径的格式") || ex.Message.Contains("指定的路径或文件名太长")) if (ex.Message.Contains("不支持给定路径的格式") || ex.Message.Contains("指定的路径或文件名太长")) { Config1.appendFile(url, "d:\\test\\failList.txt"); success = true; } //Config1.Check(); } finally { if (request != null) { request.Abort(); } if (fstream != null) { fstream.Close(); } if (response != null) { response.Close(); } if (stream != null) { stream.Close(); } if (reader != null) { reader.Close(); } if (streamReceive != null) { streamReceive.Close(); } Thread.Sleep(1000); } } }