大家好,我想在Vb程序中导入cookie与web浏览器一起使用。这些cookie保存在从firefox导出的文本文件中,使用一个名为高级cookie管理器。这是youtube和google帐户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浏览器。
InternetSetCookie函数应该仍然可以工作
http://netpl.blogspot.com/2008/09/property-of-mshtmlihtmldocument2-does.html您需要解析您的文件(简单),然后为每个cookie调用该方法。WebBrowser应该会拾取cookie,我们在过去几次使用过这种技术。
我假设你想使用WinForms WebBrowser
控件。
根据MSDN,没有Cookies
属性的WebBrowser控件,这是因为,我认为,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 );
}
}