Esempio n. 1
0
 public FormLogin(UserLoginInfo userLoginInfo, string regUrl)
 {
     InitializeComponent();
     formtitle = this.Text;
      info = userLoginInfo;
      url = regUrl;
 }
Esempio n. 2
0
 /// <summary>
 /// 创建[登录]窗体
 /// </summary>
 /// <param name="registerUrl">注册新用户的链接,传递空字符串可以隐藏界面上的[]注册]按钮</param>
 /// <returns>返回一个包含用户登录数据的UserLoginInfo对象</returns>
 public static UserLoginInfo CreateLoginForm(string registerUrl)
 {
     UserLoginInfo info = new UserLoginInfo();
     FormLogin frm = new FormLogin(info, registerUrl);
     frm.ShowDialog();
     return info;
 }
Esempio n. 3
0
		/// <summary>
		/// 创建[登录]窗体
		/// </summary>
		/// <param name="registerUrl">注册新用户的链接,传递空字符串可以隐藏界面上的[]注册]按钮</param>
		/// <returns>返回一个包含用户登录数据的UserLoginInfo对象</returns>
		public static UserLoginInfo CreateLoginForm(UserLoginInfo loginInfo, string registerUrl, string captchaFile="")
		{
			var info = loginInfo ?? new UserLoginInfo();
			FormLogin frm = new FormLogin(info, registerUrl, captchaFile);
			frm.ShowDialog();
			return info;
		}
Esempio n. 4
0
		public FormLogin(UserLoginInfo userLoginInfo, string regUrl, string captchaFile="")
		{
			InitializeComponent();
			formtitle = this.Text;
			info = userLoginInfo;
			url = regUrl;
			m_captchaFile = captchaFile;
		}
Esempio n. 5
0
		public override bool Download()
		{
			//开始下载
			TipText("正在开始任务");

			//获取视频编号
			string sm = Regex.Match(Info.Url, @"(?<=(http://www\.nicovideo\.jp/watch/|))sm\d+").Value;
			//修正简写URL
			if (Info.Url.StartsWith("sm", StringComparison.CurrentCultureIgnoreCase))
				Info.Url = "http://www.nicovideo.jp/watch/" + Info.Url;

			//获取网页源代码
			string src = Network.GetHtmlSource(Info.Url, Encoding.UTF8, Info.Proxy);
			//匹配登录按钮
			Match mLoginButton = Regex.Match(src, "(?<=アカウント新規登録へ.+?<a href=\").+?(?=\">.+?ログイン画面へ)");
			//获取登录地址
			string loginUrl = mLoginButton.Value;

			TipText("正在登录Nico");

			//向网页Post数据
			CookieContainer cookies = new CookieContainer();
			//登录NicoNico
			UserLoginInfo user;
			//检查插件配置
			try
			{
				user = new UserLoginInfo();
				user.Username = Encoding.UTF8.GetString(Convert.FromBase64String(Info.Settings["user"]));
				user.Password = Encoding.UTF8.GetString(Convert.FromBase64String(Info.Settings["password"]));
				if (string.IsNullOrEmpty(user.Username) || string.IsNullOrEmpty(user.Password))
					throw new Exception();
			}
			catch
			{
				user = ToolForm.CreateLoginForm(null,"https://secure.nicovideo.jp/secure/register");
				Info.Settings["user"] = Convert.ToBase64String(Encoding.UTF8.GetBytes(user.Username));
				Info.Settings["password"] = Convert.ToBase64String(Encoding.UTF8.GetBytes(user.Password));
			}
			//Post的数据
			string postdata = string.Format("next_url={0}&mail={1}&password={2}", sm, Tools.UrlEncode(user.Username), Tools.UrlEncode(user.Password));
			byte[] data = Encoding.UTF8.GetBytes(postdata);
			//生成请求
			HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://secure.nicovideo.jp/secure/login?site=niconico");
			req.Proxy = Info.Proxy;
			req.AllowAutoRedirect = false;
			req.Method = "POST";
			req.Referer = loginUrl;
			req.ContentType = "application/x-www-form-urlencoded";
			req.ContentLength = data.Length;
			req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0";
			req.CookieContainer = new CookieContainer();
			//发送POST数据
			using (var outstream = req.GetRequestStream())
			{
				outstream.Write(data, 0, data.Length);
				outstream.Flush();
			}
			//关闭请求
			req.GetResponse().Close();
			cookies = req.CookieContainer; //保存cookies

			TipText("正在解析视频标题");

			//解析视频标题
			HttpWebRequest reqTitle = (HttpWebRequest)HttpWebRequest.Create(Info.Url);
			reqTitle.Proxy = Info.Proxy;
			//设置cookies
			reqTitle.CookieContainer = cookies;
			//获取视频信息
			string srcTitle = Network.GetHtmlSource(reqTitle, Encoding.UTF8);
			//视频标题
			Info.Title = Regex.Match(srcTitle, @"(?<=<title>).+?(?=</title>)").Value.Replace("‐ ニコニコ動画(原宿)", "").Trim();
			//Info.Title = Regex.Match(srcTitle, @"(?<=<span class=""videoHeaderTitle"">).+?(?=</span>)").Value;
			string title = Tools.InvalidCharacterFilter(Info.Title, "");

			TipText("正在分析视频地址");

			//通过API获取视频信息
			HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(@"http://flapi.nicovideo.jp/api/getflv/" + sm);
			request.Method = "POST";
			request.Proxy = Info.Proxy;
			//设置cookies
			request.CookieContainer = cookies;
			//获取视频信息
			string videoinfo = Network.GetHtmlSource(request, Encoding.ASCII);
			//视频真实地址
			string video = Regex.Match(videoinfo, @"(?<=url=).+?(?=&)").Value;
			video = video.Replace("%3A", ":").Replace("%2F", "/").Replace("%3F", "?").Replace("%3D", "=");

			//下载视频
			NewPart(1, 1);

			//设置下载参数
			currentParameter = new DownloadParameter()
			{
				//文件名 例: c:\123(1).flv
				FilePath = Path.Combine(Info.SaveDirectory.ToString(),
							title + ".mp4"),
				//文件URL
				Url = video,
				//代理服务器
				Proxy = Info.Proxy,
				//Cookie
				Cookies = cookies,
				//提取缓存
				ExtractCache = Info.ExtractCache,
				ExtractCachePattern = "fla*.tmp"
			};

			//下载视频
			bool success = Network.DownloadFile(currentParameter, this.Info);
			if (!success) //未出现错误即用户手动停止
			{
				return false;
			}

			return true;
		}
Esempio n. 6
0
        //下载视频
        public override bool Download()
        {
            //开始下载
            TipText("正在分析视频地址");

            //修正井号
            Info.Url = Info.Url.TrimEnd('#');
            //修正旧版URL
            Info.Url = Info.Url.Replace("bilibili.us", "bilibili.tv");
            Info.Url = Info.Url.Replace("www.bilibili.tv", "bilibili.kankanews.com");
            Info.Url = Info.Url.Replace("bilibili.tv", "bilibili.kankanews.com");

            //修正简写URL
            if (Regex.Match(Info.Url, @"^av\d{2,6}$").Success)
                Info.Url = "http://bilibili.kankanews.com/video/" + Info.Url + "/";
            //修正index_1.html
            if (!Info.Url.EndsWith(".html"))
            {
                if (Info.Url.EndsWith("/"))
                    Info.Url += "index_1.html";
                else
                    Info.Url += "/index_1.html";
            }

            string url = Info.Url;
            //取得子页面文件名(例如"/video/av12345/index_123.html")
            string suburl = Regex.Match(Info.Url, @"bilibili\.kankanews\.com(?<part>/video/av\d+/index_\d+\.html)").Groups["part"].Value;

            //取得AV号和子编号
            Match mAVNumber = Regex.Match(Info.Url, @"(?<av>av\d+)/index_(?<sub>\d+)\.html");
            Settings["AVNumber"] = mAVNumber.Groups["ac"].Value;
            Settings["AVSubNumber"] = mAVNumber.Groups["sub"].Value;
            //设置自定义文件名
            Settings["CustomFileName"] = AcFunPlugin.DefaultFileNameFormat;
            if (Info.BasePlugin.Configuration.ContainsKey("CustomFileName"))
            {
                Settings["CustomFileName"] = Info.BasePlugin.Configuration["CustomFileName"];
            }

            //是否通过【自动应答】禁用对话框
            bool disableDialog = false;
            if (Info.AutoAnswer != null)
            {
                foreach (var item in Info.AutoAnswer)
                {
                    if (item.Prefix == "bilibili")
                    {
                        if (item.Identify == "auto")
                            disableDialog = true;
                        break;
                    }
                }
            }

            //视频地址数组
            string[] videos = null;

            try
            {
                //取得网页源文件
                string src = Network.GetHtmlSource(url, Encoding.UTF8, Info.Proxy);
                //type值
                string type = "";
                #region 登录并重新获取网页源文件

                //检查是否需要登录
                if (src.Contains("无权访问")) //需要登录
                {
                    CookieContainer cookies = new CookieContainer();
                    //登录Bilibili
                    UserLoginInfo user;
                    //检查插件配置
                    try
                    {
                        user = new UserLoginInfo();
                        user.Username = Encoding.UTF8.GetString(Convert.FromBase64String(Info.Settings["user"]));
                        user.Password = Encoding.UTF8.GetString(Convert.FromBase64String(Info.Settings["password"]));
                        if (string.IsNullOrEmpty(user.Username) || string.IsNullOrEmpty(user.Password))
                            throw new Exception();
                    }
                    catch
                    {
                        user = ToolForm.CreateLoginForm("https://secure.bilibili.tv/member/index_do.php?fmdo=user&dopost=regnew");
                        Info.Settings["user"] = Convert.ToBase64String(Encoding.UTF8.GetBytes(user.Username));
                        Info.Settings["password"] = Convert.ToBase64String(Encoding.UTF8.GetBytes(user.Password));
                    }
                    //Post的数据
                    string postdata = "fmdo=login&dopost=login&refurl=http%%3A%%2F%%2Fbilibili.tv%%2F&keeptime=604800&userid=" + user.Username + "&pwd=" + user.Password + "&keeptime=604800";
                    byte[] data = Encoding.UTF8.GetBytes(postdata);
                    //生成请求
                    HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://secure.bilibili.tv/member/index_do.php");
                    req.Method = "POST";
                    req.Referer = "https://secure.bilibili.tv/login.php";
                    req.ContentType = "application/x-www-form-urlencoded";
                    req.ContentLength = data.Length;
                    req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0";
                    req.CookieContainer = new CookieContainer();
                    //发送POST数据
                    using (var outstream = req.GetRequestStream())
                    {
                        outstream.Write(data, 0, data.Length);
                        outstream.Flush();
                    }
                    //关闭请求
                    req.GetResponse().Close();
                    cookies = req.CookieContainer; //保存cookies
                    string cookiesstr = req.CookieContainer.GetCookieHeader(req.RequestUri); //字符串形式的cookies

                    //重新请求网页
                    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
                    if (Info.Proxy != null)
                        request.Proxy = Info.Proxy;
                    //设置cookies
                    request.CookieContainer = cookies;
                    //获取网页源代码
                    src = Network.GetHtmlSource(request, Encoding.UTF8);
                }

                #endregion

                //取得视频标题
                Regex rTitle = new Regex(@"<title>(?<title>.*)</title>");
                Match mTitle = rTitle.Match(src);
                //文件名称
                string title = mTitle.Groups["title"].Value.Replace("- 嗶哩嗶哩", "").Replace("- ( ゜- ゜)つロ", "").Replace("乾杯~", "").Replace("- bilibili.tv", "").Trim();
                string subtitle = title;

                //取得子标题
                Regex rSubTitle = new Regex(@"<option value='(?<part>.+?\.html)'(| selected)>(?<content>.+?)</option>");
                MatchCollection mSubTitles = rSubTitle.Matches(src);

                //如果存在下拉列表框
                if (mSubTitles.Count > 0)
                {
                    //确定当前视频的子标题
                    foreach (Match item in mSubTitles)
                    {
                        if (suburl == item.Groups["part"].Value)
                        {
                            subtitle = item.Groups["content"].Value;
                            break;
                        }
                    }

                    //如果需要解析关联下载项
                    //解析关联项需要同时满足的条件:
                    //1.这个任务不是被其他任务所添加的
                    //2.用户设置了“解析关联项”
                    if (!Info.IsBeAdded)
                    {
                        if (Info.ParseRelated)
                        {
                            //准备(地址-标题)字典
                            var dict = new Dictionary<string, string>();
                            foreach (Match item in mSubTitles)
                            {
                                if (suburl != item.Groups["part"].Value)
                                {
                                    dict.Add(url.Replace(suburl, item.Groups["part"].Value),
                                                item.Groups["content"].Value);
                                }
                            }
                            //用户选择任务
                            var ba = new Collection<string>();
                            if (!disableDialog)
                                ba = ToolForm.CreateMultiSelectForm(dict, Info.AutoAnswer, "bilibili");
                            //根据用户选择新建任务
                            foreach (string u in ba)
                            {
                                //新建任务
                                delegates.NewTask(new ParaNewTask(Info.BasePlugin, u, this.Info));
                            }
                        }
                    }
                }

                Info.Title = title + " - " + subtitle;
                //过滤非法字符
                title = Tools.InvalidCharacterFilter(title, "");
                subtitle = Tools.InvalidCharacterFilter(subtitle, "");

                //清空地址
                Info.FilePath.Clear();
                Info.SubFilePath.Clear();

                //视频id
                string id = "";

                //分析id和视频存放站点(type)
                //取得"bofqi块的源代码
                Regex rEmbed = new Regex("<div class=\"scontent\" id=\"bofqi\">(?<content>.*?)</div>", RegexOptions.Singleline);
                Match mEmbed = rEmbed.Match(src);
                string embedSrc = mEmbed.Groups["content"].Value.Replace("type=\"application/x-shockwave-flash\"", "");

                //检查"file"参数
                Regex rFile = new Regex("file=(\"|)(?<file>.+?)(\"|&)");
                Match mFile = rFile.Match(embedSrc);
                //取得Flash地址
                Regex rFlash = new Regex("src=\"(?<flash>.*?\\.swf)\"");
                Match mFlash = rFlash.Match(embedSrc);
                //取得id值
                Regex rId = new Regex(@"(?<idname>(\w{0,2}id|data))=(?<id>([\w\-]+|$http://.+?$))".Replace("$", "\""));
                Match mId = rId.Match(embedSrc);
                //取得ID
                id = mId.Groups["id"].Value;
                //取得type值
                type = mId.Groups["idname"].Value;

                //下载弹幕
                bool comment = DownloadComment(title, subtitle, id);
                if (!comment)
                {
                    Info.PartialFinished = true;
                    Info.PartialFinishedDetail += "\r\n弹幕文件文件下载失败";
                }

                //解析器的解析结果
                ParseResult pr = null;

                //如果允许下载视频
                if ((Info.DownloadTypes & DownloadType.Video) != 0)
                {
                    if (mFile.Success) //如果有file参数
                    {
                        string fileurl = mFile.Groups["file"].Value;
                        videos = new string[] { fileurl };
                    }
                    else if (mId.Success)//如果是普通的外链
                    {
                        //检查外链
                        switch (type)
                        {
                            case "qid": //QQ视频
                                //解析视频
                                QQVideoParser parserQQ = new QQVideoParser();
                                pr = parserQQ.Parse(new ParseRequest() { Id = id, Proxy = Info.Proxy, AutoAnswers = Info.AutoAnswer });
                                videos = pr.ToArray();
                                break;
                            case "ykid": //优酷视频
                                //解析视频
                                YoukuParser parserYouKu = new YoukuParser();
                                pr = parserYouKu.Parse(new ParseRequest() { Id = id, Proxy = Info.Proxy, AutoAnswers = Info.AutoAnswer });
                                videos = pr.ToArray();
                                break;
                            case "uid": //土豆视频
                                //解析视频
                                TudouParser parserTudou = new TudouParser();
                                pr = parserTudou.Parse(new ParseRequest() { Id = id, Proxy = Info.Proxy, AutoAnswers = Info.AutoAnswer });
                                videos = pr.ToArray();
                                break;
                            case "data": //Flash游戏
                                id = id.Replace("\"", "");
                                videos = new string[] { id };
                                break;
                            default: //新浪视频
                                SinaVideoParser parserSina = new SinaVideoParser();
                                pr = parserSina.Parse(new ParseRequest() { Id = id, Proxy = Info.Proxy, AutoAnswers = Info.AutoAnswer });
                                videos = pr.ToArray();
                                break;
                        }
                    }
                    else //如果是游戏
                    {
                        string flashurl = mFlash.Groups["flash"].Value;
                        videos = new string[] { flashurl };
                    }

                    Info.videos = videos;
                    return true;

                    //下载视频
                    //确定视频共有几个段落
                    Info.PartCount = videos.Length;

                    //------------分段落下载------------
                    for (int i = 0; i < Info.PartCount; i++)
                    {
                        Info.CurrentPart = i + 1;

                        //取得文件后缀名
                        string ext = Tools.GetExtension(videos[i]);
                        if (string.IsNullOrEmpty(ext))
                        {
                            if (string.IsNullOrEmpty(Path.GetExtension(videos[i])))
                                ext = ".flv";
                            else
                                ext = Path.GetExtension(videos[i]);
                        }
                        if (ext == ".hlv") ext = ".flv";

                        //设置文件名
                        var renamehelper = new CustomFileNameHelper();
                        string filename = renamehelper.CombineFileName(Settings["CustomFileName"],
                                        title, subtitle, Info.PartCount == 1 ? "" : Info.CurrentPart.ToString(),
                                        ext.Replace(".", ""), Info.Settings["AVNumber"], Info.Settings["AVSubNumber"]);
                        filename = Path.Combine(Info.SaveDirectory.ToString(), filename);

                        //生成父文件夹
                        if (!Directory.Exists(Path.GetDirectoryName(filename)))
                            Directory.CreateDirectory(Path.GetDirectoryName(filename));

                        //设置当前DownloadParameter
                        currentParameter = new DownloadParameter()
                        {
                            //文件名 例: c:\123(1).flv
                            FilePath = filename,
                            //文件URL
                            Url = videos[i],
                            //代理服务器
                            Proxy = Info.Proxy,
                            //提取缓存
                            ExtractCache = Info.ExtractCache,
                            ExtractCachePattern = "fla*.tmp"
                        };

                        //添加文件路径到List<>中
                        Info.FilePath.Add(currentParameter.FilePath);
                        //下载文件
                        bool success;

                        //提示更换新Part
                        delegates.NewPart(new ParaNewPart(this.Info, i + 1));

                        //下载视频
                        try
                        {
                            success = Network.DownloadFile(currentParameter, this.Info);
                            if (!success) //未出现错误即用户手动停止
                            {
                                return false;
                            }
                        }
                        catch (Exception ex) //下载文件时出现错误
                        {
                            //如果此任务由一个视频组成,则报错(下载失败)
                            if (Info.PartCount == 1)
                            {
                                throw ex;
                            }
                            else //否则继续下载,设置“部分失败”状态
                            {
                                Info.PartialFinished = true;
                                Info.PartialFinishedDetail += "\r\n文件: " + currentParameter.Url + " 下载失败";
                            }
                        }

                    } //end for
                }//end 判断是否下载视频

                //如果插件设置中没有GenerateAcPlay项,或此项设置为true则生成.acplay快捷方式
                if (!Info.BasePlugin.Configuration.ContainsKey("GenerateAcPlay") ||
                    Info.BasePlugin.Configuration["GenerateAcPlay"] == "true")
                {
                    //生成AcPlay文件
                    string acplay = GenerateAcplayConfig(pr, title, subtitle);
                    //支持AcPlay直接播放
                    Info.Settings["AcPlay"] = acplay;
                }

                //支持导出列表
                if (videos != null)
                {
                    StringBuilder sb = new StringBuilder(videos.Length * 2);
                    foreach (string item in videos)
                    {
                        sb.Append(item);
                        sb.Append("|");
                    }
                    if (Info.Settings.ContainsKey("ExportUrl"))
                        Info.Settings["ExportUrl"] = sb.ToString();
                    else
                        Info.Settings.Add("ExportUrl", sb.ToString());
                }
            }
            catch (Exception ex)
            {
                Info.Settings["user"] = "";
                Info.Settings["password"] = "";
                throw ex;
            }

            return true;
        }
Esempio n. 7
0
		private string LoginApi(string url, string apiAddress, out CookieContainer loginPageCookieContainer)
		{
			string xmlSrc;
			var LOGIN_PAGE = "https://secure.bilibili.com/login";
			//获取登录页Cookie
			var loginPageRequest = (HttpWebRequest)WebRequest.Create(LOGIN_PAGE);
			loginPageRequest.Proxy = Info.Proxy;
			loginPageRequest.Referer = @"http://www.bilibili.com/";
			loginPageRequest.UserAgent = @"Mozilla/5.0 (Windows NT 6.3; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0";
			loginPageRequest.Accept = @"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";

			string loginPageCookie;
			using (var resp = loginPageRequest.GetResponse())
			{
				loginPageCookieContainer = new CookieContainer();
				var sid = Regex.Match(resp.Headers["Set-Cookie"], @"(?<=sid=)\w+").Value;
				loginPageCookieContainer.Add(new Cookie("sid", sid, "/", ".bilibili.com"));
				loginPageCookie = loginPageCookieContainer.GetCookieHeader(new Uri(LOGIN_PAGE));
			}
			//获取验证码图片
			var loginInfo = new UserLoginInfo();
			if (Info.BasePlugin.Configuration.ContainsKey("Username"))
				loginInfo.Username = Encoding.UTF8.GetString(Convert.FromBase64String(Info.BasePlugin.Configuration["Username"]));
			if (Info.BasePlugin.Configuration.ContainsKey("Password"))
				loginInfo.Password = Encoding.UTF8.GetString(Convert.FromBase64String(Info.BasePlugin.Configuration["Password"]));
			if (Settings.ContainsKey("Username"))
				loginInfo.Username = Settings["Username"];
			if (Settings.ContainsKey("Password"))
				loginInfo.Password = Settings["Password"];

			var captchaUrl = @"https://secure.bilibili.com/captcha?r=" +
							 new Random(Environment.TickCount).NextDouble().ToString();
			var captchaFile = Path.GetTempFileName() + ".png";
			var captchaClient = new WebClient { Proxy = Info.Proxy };
			captchaClient.Headers.Add(HttpRequestHeader.Cookie, loginPageCookie);
			captchaClient.DownloadFile(captchaUrl, captchaFile);
			loginInfo = ToolForm.CreateLoginForm(loginInfo, @"https://secure.bilibili.com/register", captchaFile);

			//保存到设置
			Settings["Username"] = loginInfo.Username;
			Settings["Password"] = loginInfo.Password;


			string postString = @"act=login&gourl=http%%3A%%2F%%2Fbilibili.com%%2F&userid=" + loginInfo.Username + "&pwd=" +
								loginInfo.Password +
								"&vdcode=" + loginInfo.Captcha.ToUpper() + "&keeptime=2592000";
			byte[] data = Encoding.UTF8.GetBytes(postString);

			var loginRequest = (HttpWebRequest)WebRequest.Create(@"https://secure.bilibili.com/login");
			loginRequest.Proxy = Info.Proxy;
			loginRequest.Method = "POST";
			loginRequest.Referer = "https://secure.bilibili.com/login";
			loginRequest.ContentType = "application/x-www-form-urlencoded";
			loginRequest.ContentLength = data.Length;
			loginRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/20100101 Firefox/25.0";
			loginRequest.Referer = url;
			loginRequest.CookieContainer = loginPageCookieContainer;

			//发送POST数据
			using (var outstream = loginRequest.GetRequestStream())
			{
				outstream.Write(data, 0, data.Length);
				outstream.Flush();
			}
			//关闭请求
			loginRequest.GetResponse().Close();
			var cookies = loginRequest.CookieContainer.GetCookieHeader(new Uri(LOGIN_PAGE));

			var client = new WebClient { Proxy = Info.Proxy };
			client.Headers.Add(HttpRequestHeader.Cookie, cookies);

			var apiRequest = (HttpWebRequest)WebRequest.Create(apiAddress);
			apiRequest.Proxy = Info.Proxy;
			apiRequest.Headers.Add(HttpRequestHeader.Cookie, cookies);
			xmlSrc = Network.GetHtmlSource(apiRequest, Encoding.UTF8);
			return xmlSrc;
		}