Beispiel #1
0
    static int Main(string[] args)
    {
        if (args.Length == 0)
        {
            return(Help());
        }

        MonoGet   mget = new MonoGet();
        ArrayList urls = new ArrayList();

        foreach (string arg in args)
        {
            switch (arg.ToLower())
            {
            case "--no-check-certificate":
                ServicePointManager.CertificatePolicy = mget;
                break;

            case "--secure-protocol=auto":
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;
                break;

            case "--secure-protocol=sslv3":
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
                break;

            case "--secure-protocol=tlsv1":
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
                break;

            case "--secure-protocol=sslv2":
                Console.WriteLine("SSLv2 isn't supported in the framework");
                return(Help());

            case "--help":
            case "--?":
                return(Help());

            default:
                if (arg.StartsWith("--"))
                {
                    Console.WriteLine("Unknown {0} option.", arg);
                    return(Help());
                }
                else
                {
                    urls.Add(arg);
                }
                break;
            }
        }

        if (urls.Count == 0)
        {
            return(Help());
        }

        int status = 0;

        foreach (string url in urls)
        {
            string filename = Path.GetFileName(url);
            if (filename.Length == 0)
            {
                filename = "default";
            }
            string savename = filename;

            int n = 1;
            while (File.Exists(savename))
            {
                savename = String.Concat(filename, ".", n.ToString());
                n++;
            }

            Console.WriteLine("{0}\tGET {1}", DateTime.UtcNow.TimeOfDay, url);
            Console.WriteLine("\tsaving to: {0}", savename);

            long     size  = -1;
            DateTime start = DateTime.UtcNow;
            try {
                size = mget.Get(url, savename);
            }
            catch (Exception e) {
                Console.WriteLine("transfer incomplete due to exception: {0}", e);
                status++;
            }
            finally {
                Console.WriteLine("completed {0} bytes in {1}.", size, (DateTime.UtcNow - start));
            }
        }

        return(status);
    }
Beispiel #2
0
	static int Main (string[] args)
	{
		if (args.Length == 0)
			return Help ();

		MonoGet mget = new MonoGet ();
		ArrayList urls = new ArrayList ();

		foreach (string arg in args) {
			switch (arg.ToLower ()) {
			case "--no-check-certificate":
				ServicePointManager.CertificatePolicy = mget;
				break;
			case "--secure-protocol=auto":
				ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls;
				break;
			case "--secure-protocol=sslv3":
				ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
				break;
			case "--secure-protocol=tlsv1":
				ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
				break;
			case "--secure-protocol=sslv2":
				Console.WriteLine ("SSLv2 isn't supported in the framework");
				return Help ();
			case "--help":
			case "--?":
				return Help ();
			default:
				if (arg.StartsWith ("--")) {
					Console.WriteLine ("Unknown {0} option.", arg);
					return Help ();
				} else {
					urls.Add (arg);
				}
				break;
			}
		}

		if (urls.Count == 0)
			return Help ();

		int status = 0;
		foreach (string url in urls) {
			string filename = Path.GetFileName (url);
			if (filename.Length == 0)
				filename = "default";
			string savename = filename;

			int n = 1;
			while (File.Exists (savename)) {
				savename = String.Concat (filename, ".", n.ToString ());
				n++;
			}
			
			Console.WriteLine ("{0}\tGET {1}", DateTime.UtcNow.TimeOfDay, url);
			Console.WriteLine ("\tsaving to: {0}", savename);

			long size = -1;
			DateTime start = DateTime.UtcNow;
			try {
				size = mget.Get (url, savename);
			}
			catch (Exception e) {
				Console.WriteLine ("transfer incomplete due to exception: {0}", e);
				status++;
			}
			finally {
				Console.WriteLine ("completed {0} bytes in {1}.", size, (DateTime.UtcNow - start));
			}
		}

		return status;
	}