최근에 HTTPWebRequest를 통해 로그인하고 자동으로 메시지를 보낼 수있는 소프트웨어를 사용하고 있습니다. 이것이 제가 본 것입니다. 코드는 최소하고 매우 좋습니다.
1 사용 시스템;
2using system.runtime.interopservices;
3using system.text;
4using system.net;
5
6namespace nexplos.nsiter
7 {
8/** //// <요약>
9 /// 쿠키를 얻는 방법 클래스.
10 /// </summary>
11 공개 클래스 Cookiemanger
12 {
13/** /// <요약>
14 /// com을 통해 쿠키 데이터를 얻습니다.
15 /// </summary>
16 /// <param name = url> 현재 URL. </param>
17 /// <param name = cookiename> cookiename. </param>
18 /// <param name = cookiedata> <cref = stringbuilder/> 쿠키 데이터를 저장하는 데 사용됩니다. </param>
19 /// <param name = size> 쿠키 크기. </param>
20 /// <returns> returnss <c> true </c> 성공하면 <c> false </c>를 반환합니다. </반환>
21 [dllimport (winet.dll, setlasterror = true)]
22 공개 정적 외부 Bool InternetGetCookie (
23 String URL, String Cookiename,
24 StringBuilder cookiedata, ref int size);
25/** //// <요약>
26 /// 현재 가져 오기 <CREF = CookieContainer/instance <cref = uri/> 참조.
27 /// </summary>
28 /// <param name = uri> 현재 <cref = uri/> 주소 참조. </param>
29 /// <returns> current <cref = cookiecontainer/instance <cref = uri/> 참조. </반환>
30 공개 정적 CookieContainer geturicookieciecontainer (uri uri) {
31 CookieContainer 쿠키 = null;
32
33 // 쿠키 데이터의 크기를 정의합니다.
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 리턴 널;
41
42 // 쿠키 데이터를 수용 할 수있는 충분한 공간이 있는지 확인하십시오.
43 Cookiedata = New StringBuilder (DataSize);
44 if (! InternetGetCookie (uri.toString (), null, cookiedata,
45 Ref DataSize))))
46 리턴 널;
47}
48
49
50 if (cookiedata.length> 0) {
51 쿠키 = 새로운 cookiecontainer ();
52 쿠키 .setCookies (uri, cookiedata.toString (). 교체 ( ';', ','));
53}
54 반환 쿠키;
55}
56
57}
58} 모든 사람에게 유용하기를 바랍니다.