2013-04-03 34 views
0

嗨,大家好,我想导入cookie以便在Vb程序中使用Web浏览器。 这些cookie位于使用名为 高级cookie管理器的插件从foirefox中导出的文本文件中。 这是一个youtube和谷歌帐户cookie的全文文件内容。从c#窗口窗体中的文本文件导入cookie

accounts.google.com FALSE / TRUE 0 GALX 6eHg_ah2OcA 
accounts.google.com FALSE / TRUE 0 GoogleAccountsLocale_session en 
accounts.google.com FALSE / TRUE 0 GAPS 1:_Nr1hdAKxmmjavGHMMvU0mmYvqJE8A:Nc1AzVmN-IKZb3oq 
accounts.google.com FALSE / TRUE 0 LSID s.DE|s.youtube|talk|youtube:DQAAALoAAADgCb0yghM0OyhoTEOWeKd__922mYyKa3H0yBIs5jGOfSbMfP6C76Ao7YBT3chA3BA4zmqB3w5so99qg0QzJgh4LmocSsTuOc7aAraSsUH0dxfz0lJpoWxYx7f3hXI1HB2XP6YVtlpHZi-VAjsaaRDLanfpMddm73RtUnlu4xSJoNAgF0xJNogs_Of4EPAssrchOowBKcdM1-P-aQMy7rgvo5V5RF1RxTVZ8dyWRdqk8ocqEk09M-dld3fLm7cZB7g 
.youtube.com TRUE / FALSE 0 VISITOR_INFO1_LIVE 2S8cjkP9HuI 
.youtube.com TRUE / FALSE 0 use_hitbox d5c5516c3379125f43aa0d495d100d6ddAEAAAAw 
.youtube.com TRUE / TRUE 0 SSID A6maF6dfv-b3voGtv 
.youtube.com TRUE / TRUE 0 SAPISID q2lzZ6EO9sD4zfaO/Ag61mffuXQhzbTylQ 
.youtube.com TRUE / TRUE 0 HSID Al2Ze5_OdWHfE-lKA 
.youtube.com TRUE / TRUE 0 APISID dCxiK0RIWXVF4ss9/ADUW4MrNC4wbMNIZo 
.youtube.com TRUE / FALSE 0 PREF f1=50000000&fv=0.0.0 
.youtube.com TRUE / FALSE 0 ACTIVITY 1358853848282 
.youtube.com TRUE / TRUE 0 demographics b5b9b36b16b837de11794f76ac5adc24e3QGAAAAZ2VuZGVydAEAAABtdAMAAABhZ2VpHgAAADA= 
.youtube.com TRUE / TRUE 0 SID DQAAALkAAABYU1N6s7Wc4ckiyqekON91HZLX2WNwPAtmyu82zizR8ahweELmw13pWScKM0DWZMn3DrGU4L-ycQQpQ2EirWKdJ0zfjdGZh3iZCfYhDZcCfDgAqSmWpbGS8UW0tbkapa7hTyoSlmu342A7xWtzujGSVW94RvmXmKc7f9U6jKQ55rTABiaoiZ3DEYqDjb2pSfGu9x1wRSTpDH09nGT_rvN-IPr6Exy9aLErbk0VHhjeQVD-a93jPbKs_71T9gGmr00 
.youtube.com TRUE / TRUE 0 LOGIN_INFO ad4923957f199d9967473fbb9efc6facc3cAAAB7IjEiOiAxLCAiMiI6ICJSWVh2cXhhMHRMQmZaUHowTEpSdGFRPT0iLCAiMyI6IDEzNjEyNDgyMDYsICI0IjogIkdBSUEiLCAiNiI6IGZhbHNlLCAiNyI6IDEzNTg5NTY1ODAsICI4IjogNTMwMDM1NDIxMzY3fQ==` 

我想知道的是:我如何使用这些文本文件或其内容与Vb Web浏览器。

+0

您是否使用的WinForms或WPF'WebBrowser'控制?或者你想用'HttpClient'或'HttpWebRequest'来使用它们吗? – Dai

+0

我正在使用窗体表格 – Pankaj

+0

请您附上文件,以便我们可以得到正确的行结尾? –

回答

5

我假设你想使用WinForms WebBrowser控制。

根据MSDN,WebBrower控件没有Cookies属性,这是因为,我假设WebBrowser使用与桌面IE相同的浏览器状态......并非如此。

根据MSDN上的此线程(http://social.msdn.microsoft.com/Forums/windows/en-US/e43239f3-3914-43ec-ac50-223b022ec2ea/webbrowser-control-and-cookies?forum=winformsdesigner),您可以通过从wininet.dll导入InternetSetCookie函数来添加cookie。

所以我会做这样的事情(在C#中,很抱歉,但它转换成VB应该很容易)

// Ideally I'd parse the text-file using a finite-state-machine parser modelled on a CSV parser, but for this exercise I'll resort to `String.Split`. 

private static List<String[]> GetCookieLines(String fileName) { 

    List<String[]> cookieLines = new List<String[]>(); 
    using(FileStream fs = new FileStream(pathToYourCookies.txt, FileMode.Open)) 
    using(StreamReader rdr = new StreamReader(fs, Encoding.UTF8)) { 

     String line; 
     while((line = rdr.ReadLine()) != null) { 

      String[] components = line.Split('\t'); // assuming tab-separated file 
      cookieLines.Add(components) 
     } 
    } 
} 

[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)] 
private static extern Boolean InternetSetCookie(string urlName, string cookieName, string cookieData); 

public static void ImportCookies(String fileName) { 

    List<String[]> cookies = GetCookieLines(fileName); 
    foreach(String[] cookie in cookies) { 

     String domainName = cookie[0]; 
     String name  = cookie[4]; 
     String value  = cookie[5]; 

     InternetSetCookie(domainName, name, value); 
    } 
} 
+0

+1。感谢您的回复 – Pankaj

+0

我有一个包含sqlite格式信息的txt文件。上面的代码会起作用吗? – Pankaj

+0

@abcdefghi你是什么意思的“SQLite格式信息”? – Dai