最近、私はHTTPWEBREQUESTを介してログインし、自動的にメッセージを送信できる小さなソフトウェアに取り組んでいますが、今日は外国のウェブサイトからCookieContainerを入手する良い方法を見ました。これは私が見たものです。
1つのシステム。
2 System.runtime.interopervices;
3Using system.text;
4Using System.net;
5
6namespace nexplos.nsiter
7 {
8/** /// <summary>
9 /// Cookieを取得するメソッドクラス。
10 /// </summary>
11パブリッククラスのクッキーメンガー
12 {
13/** /// <summary>
14 /// comを介してCookieデータを取得します。
15 /// </summary>
16 /// <param name = url> current url。 </param>
17 /// <param name = cookiename> cookiename。</param>
18 /// <param name = cookiedata> <cref = stringbuilder/> cookieデータのインスタンスを保存するために使用されます。 </param>
19 /// <param name = size> cookie size。 </param>
20 /// <Returns> returns <c> true </c>が成功した場合、それ以外の場合は<c> false </c>を返します。 </returns>
21 [dllimport(winet.dll、setlasterror = true)]]
22 Public Static ExternBool InternetGetCookie(
23 string url、string cookiename、
24 StringBuilder cookiedata、ref int size);
25/** /// <summary>
26 ///現在の<see cref = cookiecontainer/instance <see cref = uri/>を取得します。
27 /// </summary>
28 /// <param name = uri> current <cref = uri/>アドレスを参照してください。 </param>
29 /// <Returns> current <see cref = cookiecontainer/instance <see cref = uri/>。 </returns>
30 public static cookiecontainer geturicookiecontainer(uri uri){
31 cookiecontainer cookies = null;
32
33 // Cookieデータのサイズを定義します。
34 int datasize = 256;
35 StringBuilder cookiedata = new StringBuilder(datasize);
36
37 if(!internetgetCookie(uri.tostring()、null、cookiedata、
38 ref datasize)){
39 if(datasize <0)
40返品null;
41
42 // Cookieデータに対応するのに十分なスペースがあることを確認してください。
43 cookiedata = new StringBuilder(datasize);
44 if(!internetgetCookie(uri.tostring()、null、cookiedata、
45 ref datasize))
46返品null;
47}
48
49
50 if(cookiedata.length> 0){
51 Cookies = new CookieContainer();
52 Cookies.setCookies(uri、cookiedata.tostring()。置換( ';'、 '、'));
53}
54リターンクッキー。
55}
56
57}
58}それは非常に簡単ではありませんか?