1-) C# RMOS - webBrowser1 ile Tüm cookieleri alma Get All Cookies
using System; using System.Collections; using System.Net; using System.Reflection; using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms;
namespace KbsCalisanBot { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public string baseLink = "https://kbscalisan.egm.gov.tr/"; public string username = "k.ad@gmail.com"; public string sifre = "sifre"; bool ilk = false; WebBrowser webBrowser1; [DllImport("wininet.dll", SetLastError = true)] public static extern bool InternetGetCookieEx( string url, string cookieName, StringBuilder cookieData, ref int size, Int32 dwFlags, IntPtr lpReserved);
private const Int32 InternetCookieHttponly = 0x2000;
private void Form1_Load(object sender, EventArgs e) { ilk = true; webBrowser1 = new WebBrowser(); webBrowser1.ScriptErrorsSuppressed = true;// sürekli çıkan uyarıları kapatmak için webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); webBrowser1.Navigate(baseLink); webBrowser1.Dock = DockStyle.Fill; panel1.Controls.Add(webBrowser1); } public void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { var webBrowser = sender as WebBrowser; webBrowser.DocumentCompleted -= webBrowser1_DocumentCompleted; string url = webBrowser.Url.ToString(); Console.WriteLine("URL -> " + url); if (ilk) { webBrowser.Document.GetElementById("txtkullaniciadi").SetAttribute("value", username); webBrowser.Document.GetElementById("txtsifre").SetAttribute("value", sifre); ilk = false; } }
public static CookieContainer GetUriCookieContainer(Uri uri) { CookieContainer cookies = null; // Determine the size of the cookie int datasize = 8192 * 16; StringBuilder cookieData = new StringBuilder(datasize); if (!InternetGetCookieEx(uri.ToString(), null, cookieData, ref datasize, InternetCookieHttponly, IntPtr.Zero)) { if (datasize < 0) return null; // Allocate stringbuilder large enough to hold the cookie cookieData = new StringBuilder(datasize); if (!InternetGetCookieEx( uri.ToString(), null, cookieData, ref datasize, InternetCookieHttponly, IntPtr.Zero)) return null; } if (cookieData.Length > 0) { cookies = new CookieContainer(); cookies.SetCookies(uri, cookieData.ToString().Replace(';', ',')); } return cookies; }
public CookieCollection GetAllCookies(CookieContainer cookieJar) { CookieCollection cookieCollection = new CookieCollection();
Hashtable table = (Hashtable)cookieJar.GetType().InvokeMember("m_domainTable", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance, null, cookieJar, new object[] { });
foreach (var tableKey in table.Keys) { String str_tableKey = (string)tableKey; if (str_tableKey[0] == '.') { str_tableKey = str_tableKey.Substring(1); } SortedList list = (SortedList)table[tableKey].GetType().InvokeMember("m_list", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance, null, table[tableKey], new object[] { }); foreach (var listKey in list.Keys) { String url = "https://" + str_tableKey + (string)listKey; cookieCollection.Add(cookieJar.GetCookies(new Uri(url))); } } return cookieCollection; }
private void btnTumCalisanlariListele_Click(object sender, EventArgs e) { var cookies = GetUriCookieContainer(new Uri(baseLink)); Api2 api = new Api2(); foreach (Cookie cookie in GetAllCookies(cookies)) { api.cookies.Add(cookie); } var gets = api.requestGet("https://kbscalisan.egm.gov.tr/Proje/tesiscalisanekle.aspx"); } } }
|