public void matches() { var cookie = new Cookie(); cookie.Matches("a").ShouldBeFalse(); cookie.Add(new CookieState("something")); cookie.Matches("a").ShouldBeFalse(); cookie.Matches("something").ShouldBeTrue(); cookie.Add(new CookieState("Else")); cookie.Matches("something").ShouldBeTrue(); cookie.Matches("else").ShouldBeTrue(); cookie.Matches("a").ShouldBeFalse(); }
private byte[] GetResponseData(HttpWebRequest web) { using (var res = (HttpWebResponse)web.GetResponse()) using (var rs = res.GetResponseStream()) { Location = res.Headers["Location"]; Cookie.Add(res.Cookies); byte[] buffer = new byte[2048]; int count = (int)res.ContentLength; int offset = 0; byte[] buf = new byte[count]; while (count > 0) //读取返回数据 { int n = rs.Read(buf, offset, count); if (n == 0) { break; } count -= n; offset += n; } return(buf); } }
/// <summary>重写获取响应</summary> /// <param name="request"></param> /// <returns></returns> protected override WebResponse GetWebResponse(WebRequest request) { var response = base.GetWebResponse(request); var http = response as HttpWebResponse; if (http != null) { Cookie.Add(http.Cookies); if (!String.IsNullOrEmpty(http.CharacterSet)) { Encoding = System.Text.Encoding.GetEncoding(http.CharacterSet); } } var fr = response as FtpWebResponse; if (fr != null) { if (Log != null && Log.Enable) { Log.Info(fr.BannerMessage); Log.Info(fr.StatusDescription); Log.Info(fr.WelcomeMessage); } } return(response); }
public HttpSession(string url, string cookies) { foreach (string t in cookies.Split("; ".ToCharArray())) { var t1 = t.Split('='); Cookie.Add(new Uri(url), new Cookie(t1[0], t1[1])); } }
public static Task LoadCookie(Stream stream) { var formatter = new XmlSerializer(typeof(CookieContainer)); return(formatter.Deserialize(stream) is CookieContainer saved ? Task.Factory.StartNew(() => Cookie.Add(GetAllCookies(saved))) : Task.CompletedTask); }
private void SetCookies(HttpWebRequest request) { foreach (var c in _cookieList) { Cookie.Add(new Cookie(c.Name, c.Value, c.Path, c.Domain ?? request.RequestUri.Host) { Expires = c.ExpiresDate ?? DateTime.Now.AddYears(1) }); } }
private string GetResponseText(HttpWebRequest web) { using (var res = (HttpWebResponse)web.GetResponse()) using (var sr = new StreamReader(res.GetResponseStream(), Encoding)) { Location = res.Headers["Location"]; Cookie.Add(res.Cookies); return(sr.ReadToEnd()); } }
/// <summary> /// 指定したユーザ、パスワードを用いて、ログイン処理を実行します。 /// </summary> /// <param name="mail">メールアドレス</param> /// <param name="password">パスワード</param> /// <remarks>既にログイン済みの場合もログインし直します。</remarks> public void Login(string mail, string password) { // ログインテスト前にプロパティを初期化する。 Initialize(); if (string.IsNullOrWhiteSpace(mail) || string.IsNullOrWhiteSpace(password)) { // ログイン情報が指定されていない場合は中断 Message = "ログイン情報が入力されていません。"; return; } try { // リクエストを取得する。 var httpWebRequest = GetRequest(mail, password); var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); // リクエストからクッキー取得 CookieCollection cookies = httpWebRequest.CookieContainer.GetCookies(httpWebRequest.RequestUri); // TODO これいる? //IFormatter formatter = new BinaryFormatter(); //using (Stream serializationStream = new FileStream(Variable.LOG_FOLDER + "\\Cookie.bin", FileMode.Create, FileAccess.Write, FileShare.None)) //{ // formatter.Serialize(serializationStream, cookies); //} // 取得したクッキーをIEに流用 HttpUtil.InternetSetCookie(cookies); // 自身のクッキーコンテナに追加 Cookie.Add(cookies); // レスポンスを用いてログイン処理を実行する。 if (LoginWithResponse(HttpUtil.GetResponseString(httpWebResponse))) { // ログインが成功したら、ログイン情報を保存する。 HttpRequestConst.Mail = mail; HttpRequestConst.Password = password; } } catch (Exception ex) { Console.WriteLine(ex.ToString()); // TODO Initialize(); Message = "何らかの原因でエラーが発生しました。"; } }
/// <summary>重写获取响应</summary> /// <param name="request"></param> /// <returns></returns> protected override WebResponse GetWebResponse(WebRequest request) { var response = base.GetWebResponse(request); var http = response as HttpWebResponse; if (http != null) { Cookie.Add(http.Cookies); if (!String.IsNullOrEmpty(http.CharacterSet)) { Encoding = System.Text.Encoding.GetEncoding(http.CharacterSet); } } return(response); }
internal async Task <bool> Login() { string loginURL = GameMinerURL + "login/steam?backurl=http%3A%2F%2Fgameminer.net%2F&agree=True"; var response = await WebClient.GetDocument(new Uri(loginURL)).ConfigureAwait(false); if (response == null) { return(false); } var nParams = response.DocumentNode.SelectSingleNode("//input[@name='openidparams']"); var nNonce = response.DocumentNode.SelectSingleNode("//input[@name='nonce']"); var Data = new Dictionary <string, string>() { { "action", "steam_openid_login" }, { "openid.mode", "checkid_setup" }, { "openidparams", nParams.GetAttributeValue("value", "") }, { "nonce", nNonce.GetAttributeValue("value", "") } }; var Hresp = await WebClient.GetContent(new Uri("https://steamcommunity.com/openid/login"), Data, HttpMethod.Post, null, false); if (Hresp == null) { return(false); } var url = Hresp.Headers.Location; Hresp = null; Hresp = await WebClient.GetContent(url, bAutoRedir : false); if (Hresp == null) { return(false); } if (string.IsNullOrWhiteSpace(Hresp.Headers.GetValues("set-cookie").ToArray()[0])) { return(false); } string token = Hresp.Headers.GetValues("set-cookie").ToList().First(); token = token.Substring("token=".Length); token = token.Substring(0, token.IndexOf(";")); Cookie.Add(new Cookie("token", token, "/", "." + GameMinerHost)); return(await RefreshProfile().ConfigureAwait(false)); }
internal async Task <bool> RefreshProfile() { var resp = await WebClient.GetContent(new Uri(GameMinerURL)).ConfigureAwait(false); if (resp == null) { return(false); } if (!string.IsNullOrWhiteSpace(resp.Headers.GetValues("set-cookie").ToArray()[0].ToString())) { var cookies = resp.Headers.GetValues("set-cookie").ToList(); foreach (var cookie in cookies) { if (!cookie.Contains("_xsrf")) { continue; } string val = cookie.Substring("_xsrf=".Length); val = val.Substring(0, val.IndexOf(";")); xsrf = val; Cookie.Add(new Cookie("_xsrf", val, "/", "." + GameMinerHost)); } } var doc = await WebClient.GetDocument(resp).ConfigureAwait(false); if (doc == null) { return(false); } var nCoal = doc.DocumentNode.SelectSingleNode("//span[@class='user__coal']"); var nLevel = doc.DocumentNode.SelectSingleNode("//span[@class='g-level-icon']"); var nUsername = doc.DocumentNode.SelectSingleNode("//a[@class='dashboard__user-name']"); if (nCoal == null || nLevel == null || nUsername == null) { return(false); } iCoal = int.Parse(nCoal.InnerText); iLevel = int.Parse(nLevel.InnerText); sUsername = nUsername.InnerText; return(true); }
/// <summary> /// Authenticates the by GUID. /// </summary> /// <param name="uri">The URI.</param> /// <param name="securityToken">The security token.</param> private static HttpClient AuthenticateByGuid(string uri, string securityToken) { const string SESSION_ID = "ASP.Net_SessionId"; const string UserGuid = "UserGuid"; //Stores the sessionid generated and returned by the server string sessionId = string.Empty; HttpResponseMessage httpResp = null; HeaderValues <Cookie> myCookies; HttpClient httpClient = new HttpClient(); httpClient.DefaultHeaders.Add(UserGuid, securityToken); httpResp = httpClient.Post(uri, HttpContentExtensions.CreateXmlSerializable(string.Empty)); if (!httpResp.IsStatusIsSuccessful()) { throw new EVException().AddHttpResponse(httpResp); } myCookies = httpResp.Headers.SetCookie; if (myCookies != null) { foreach (Cookie var in myCookies.Where(var => var.ContainsKey(SESSION_ID))) { // -- set the session ID sessionId = var[SESSION_ID]; break; } } Cookie objCookie = new Cookie(); objCookie.Add(Constants.EvolutionCookieName, sessionId); // -- set the cookie in the header httpClient.DefaultHeaders.Cookie.Add(objCookie); //Add authorization header Credential evcredential = new Credential(); evcredential.Parameters.Add(sessionId); httpClient.DefaultHeaders.Authorization = evcredential; httpClient.TransportSettings.ConnectionTimeout = TimeSpan.FromMinutes(60); httpClient.TransportSettings.ReadWriteTimeout = TimeSpan.FromMinutes(60); return(httpClient); }
public HttpSession(string url, CookieCollection cookies) { Cookie.Add(new Uri(url), cookies); }
public HttpSession(Uri url, CookieCollection cookies) { Cookie.Add(url, cookies); }
/// <summary> /// 设置Cookie /// </summary> /// <param name="cookie">cookie</param> public HttpClient AddCookie(Cookie cookie) { Cookie.Add(cookie); return(this); }