100分求在vc中读写cookie的原代码!!!

jiudon 2004-09-24 02:59:25
如题!

现做项目涉及到VC与Asp的数据交互,希望通过客户端读写cookie来实现,不过原来没有做过,希望贴出代码,或者发送至:jiudon@sina.com

时间紧、任务急!先谢了!
...全文
254 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiudon 2004-09-26
  • 打赏
  • 举报
回复
好的,谢了,问题解决了,不过我使用的是CInternetSession::SetCookie
jiudon 2004-09-25
  • 打赏
  • 举报
回复
我顶!
nwpulipeng 2004-09-24
  • 打赏
  • 举报
回复
帮顶混分
oyljerry 2004-09-24
  • 打赏
  • 举报
回复
Managing Cookies

--------------------------------------------------------------------------------

Under http protocol, a server or a script uses cookies to maintain state information on the client workstation. The Microsoft® Win32® Internet functions have implemented a persistent cookie database for this purpose. The Win32 Internet cookie functions are used to set cookies in and access cookies from the cookie database. For more information on http cookies, see HTTP Cookies.

The Win32 Internet functions InternetSetCookie and InternetGetCookie can be used to manage cookies.

Note The implementation of these functions is evolving.
Using Cookie Functions
The following functions allow an application to create or retrieve cookies in the cookie database.

InternetGetCookie Retrieves cookies for the specified URL and all its parent URLs.
InternetSetCookie Sets a cookie on the specified URL.

Unlike most of the Win32 Internet functions, the cookie functions do not require a call to InternetOpen. Cookies that have an expiration date are stored in the windows\cookies directory. Cookies that don't have an expiration date are stored in memory and are available only to the process in which they were created.

Getting a Cookie
InternetGetCookie returns the cookies for the specified URL and all its parent URLs.

The following example demonstrates a call to InternetGetCookie.

Show Example

char szURL[256]; // buffer to hold the URL
LPSTR lpszData = NULL; // buffer to hold the cookie data
DWORD dwSize=0; // variable to get the buffer size needed

// Insert code to retrieve the URL.

retry:

// The first call to InternetGetCookie will get the required
// buffer size needed to download the cookie data.
if (!InternetGetCookie(szURL, NULL, lpszData, &dwSize))
{
// Check for an insufficient buffer error.
if (GetLastError()== ERROR_INSUFFICIENT_BUFFER)
{
// Allocate the necessary buffer.
lpszData = new char[dwSize];

// Try the call again.
goto retry;
}
else
{
// Insert error handling code.
}

}
else
{
// Insert code to display the cookie data.

// Release the memory allocated for the buffer.
delete[]lpszData;
}
Setting a Cookie
InternetSetCookie is used to set a cookie on the specified URL. InternetSetCookie can create both persistent and session cookies.

Persistent cookies are cookies that have an expiration date. These cookies are stored in the Windows\System directory.

Session cookies are stored in memory and can be accessed only by the process that created them.

The data for the cookie should be in the format:

NAME=VALUE
For the expiration date, the format must be:

DAY, DD-MMM-YYYY HH:MM:SS GMT
DAY is the three-letter abbreviation for the day of the week, DD is the day of the month, MMM is the three-letter abbreviation for the month, YYYY is the year, and HH:MM:SS is the time of the day in military time.

The following example demonstrates two calls to InternetSetCookie. The first call creates a session cookie and the second creates a persistent cookie.

BOOL bReturn;

// Create a session cookie.
bReturn = InternetSetCookie("http://www.adventure_works.com", NULL,
"TestData = Test");

// Create a persistent cookie.
bReturn = InternetSetCookie("http://www.adventure_works.com", NULL,
"TestData = Test; expires = Sat, 01-Jan-2000 00:00:00 GMT");

--------------------------------------------------------------------------------

© 2002 Microsoft Corporation. All rights reserved.
huaboy408 2004-09-24
  • 打赏
  • 举报
回复
http://www.vccode.com/file_show.php?id=1674
Cookie的查看与删除

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧