可以尝试通过 HttpAddRequestHeaders 来添加自已的COOKIE:
char * lpszHeaders = "Cookie: Key=somevalue";
DWORD dwHeadersLength = strlen(lpszHeaders);
HttpAddRequestHeaders(hOpenRequest, lpszHeaders, dwHeadersLength, HTTP_ADDREQ_FLAG_ADD);
char * lpszHeaders = "Cookie: Key=somevalue";
DWORD dwHeadersLength = strlen(lpszHeaders);
HttpAddRequestHeaders(hOpenRequest, lpszHeaders, dwHeadersLength, HTTP_ADDREQ_FLAG_ADD);
函数会返回成功,但实际上COOKIE可能并没有添加上去,建议在调用HttpOpenRequest时指定 INTERNET_FLAG_NO_COOKIES选项。然而这个选项将阻止WinInet内部添加所需的COOKIE,因此你要负责所有必需的 COOKIE。另一个函数InternetSetCookie也可以设置COOKIE,但我从未用过。
如果需要检查返回的COOKIE,可以尝试使用HttpQueryInfo,并将其中的dwInfoLevel设置为HTTP_QUERY_SET_COOKIE。
下面是MFC代码例子:
try
{
CInternetSession Session ;
CHttpConnection *pHttpConnect = Session.GetHttpConnection( "www.abc.net" ) ;
if( pHttpConnect )
{
CH